UIWebView和UIActivityIndicatorView的结合使用
环境:Xcode6.1
UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下:
一.建立一个SingleView工程
二.初始化界面
ViewController.h文件
#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (nonatomic,strong) UIActivityIndicatorView *activityIndicatorView;
@property (nonatomic,strong) UIWebView *webView; @end
ViewController.m文件中,先写一个初始化UI的方法
- (void)stepUI {
self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:self.webView]; self.activityIndicatorView = [[UIActivityIndicatorView alloc] init];
self.activityIndicatorView.center = self.view.center;
self.activityIndicatorView.bounds = CGRectMake(, , , );
self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[self.webView addSubview:self.activityIndicatorView];
}
在ViewDidLoad方法中加载初始化UI的方法和处理UIWebView要加载的内容,并设置代理
- (void)viewDidLoad {
[super viewDidLoad];
[self stepUI]; self.webView.delegate = self;
NSString *str = [NSString stringWithFormat:@"http://www.apple.com/"];
NSURL *url = [NSURL URLWithString:str];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
三.通过UIWebView的代理方法,处理UIActivityIndicatorView的显示
让ViewController遵守UIWebViewDelegate协议
UIWebViewDelegate有下面的几个方法:
- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行
- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行
UIActivityIndicatorView控件有如下的两个方法:
- (void)startAnimating;
- (void)stopAnimating;
#pragma mark ---web view delegate
- (void)webViewDidStartLoad:(UIWebView *)webView {
[self.activityIndicatorView startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[self.activityIndicatorView stopAnimating];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"%@",error);
}
对于加载时的出错,楼主只是简单的进行打印
最后,在模拟器上运行即可。
错误总结:
1.最开始写URL时没有写协议http,只是简单的www.apple.com,导致加载失败。
2.设置UIActivityIndicatorView控件的显示样式时,没有考虑到UIWebView的加载页面为白色,还傻兮兮的设置为
self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
导致加载时没有看到显示效果,花了许久的时间才发现问题。所以写代码前一定要思维严谨,多做合理性的考虑。
UIWebView和UIActivityIndicatorView的结合使用的更多相关文章
- [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]
原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...
- ios基础篇(十六)——UIWebView的基本使用
UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档等.UIWebView是一个混合体,具体的功能控件内置的,实现一些基本的功能.UIWebView可以查看Html网页,pdf文件,do ...
- ios学习之UIWebView网页视图
转载于爱德凡的百度空间,地址:http://hi.baidu.com/aidfan/item/34a720866b33cbcdef083d37 UIWebView 使用详解 一.UIWebView加载 ...
- AFNetworking 3.0 源码解读(十一)之 UIButton/UIProgressView/UIWebView + AFNetworking
AFNetworking的源码解读马上就结束了,这一篇应该算是倒数第二篇,下一篇会是对AFNetworking中的技术点进行总结. 前言 上一篇我们总结了 UIActivityIndicatorVie ...
- IOS UIWebView 下拉刷新功能的简单实现
1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDele ...
- iOS UIWebView中javascript与Objective-C交互、获取摄像头
UIWebView是iOS开发中常用的一个视图控件,多数情况下,它被用来显示HTML格式的内容. 支持的文档格式 除了HTML以外,UIWebView还支持iWork, Office等文档格式: Ex ...
- iOS UIWebView和网页的交互(OC中调执行JS)
UIWebView和网页的交互(OC中调执行JS)- (void)viewDidLoad{[super viewDidLoad];// 1.webViewUIWebView *webView = [[ ...
- 对UIWebView的学习
建工程,建一个类WebViewController 继承于UIViewController WebViewController设置为根视图控制器 WebViewController遵守UIWebVie ...
- UIWebView swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
随机推荐
- JDK1.5新特性(一)……Enhanced for Loop
援引 Enhanced for Loop - This new language construct eliminates the drudgery and error-proneness of it ...
- iOS真机调试——Certificates, Identifiers &Profiles 简介
Certificates, Identifiers &Profiles 简介 每次到这个页面,我都不知道这几个选项是干啥的,我相信有很多同学跟我一样,所以首先我们就来先介绍下Developer ...
- flash挡住了下拉菜单
遇到了flash挡住了菜单的疑难问题. 在网上查了资料,大部分都说是加一个 <param name="wmode" value="transparent" ...
- Apache mod_wsgi部署Django项目
学习python web开发,Django部署备忘 1.下载mod_wsgi,下载路径如下:http://code.google.com/p/modwsgi/downloads/list挑选For 2 ...
- 通过js获取计算机内网ip,计算机名,mac地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 算法导论学习-Dynamic Programming
转载自:http://blog.csdn.net/speedme/article/details/24231197 1. 什么是动态规划 ------------------------------- ...
- 小波变换和motion信号处理(一)(转)
写的太好,不得不转:http://www.kunli.info/2011/02/15/fourier-wavelet-motion-signal-1/ 这是<小波变换和motion信号处理> ...
- 代码修改mysql字符
为了不再显示的时候乱码,要修改数据库默认编码.以下以GBK编码页面为例进行说明: 1.修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk2.代码运行时修改 ...
- 通过wifi调试Android程序
原文:http://www.cnblogs.com/sunzhenxing19860608/archive/2011/07/14/2106492.html 1.首先让android手机监听指定的端口: ...
- An existing PostgreSql installation has been found... 的解决
PostgreSql卸载之后,重新安装时跳出如下信息: Anexisting PostgreSql installation has been found atC:\ProgramFiles\Post ...