UIWebView和UIActivityIndicatorView的结合使用

环境:Xcode6.1

UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等。这篇文件将结合UIActivityIndicatorView控件制作一个小实例(加载apple的官网)。效果如下:

     

一.建立一个SingleView工程

二.初始化界面

ViewController.h文件

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UIViewController
4
5 @property (nonatomic,strong) UIActivityIndicatorView *activityIndicatorView;
6 @property (nonatomic,strong) UIWebView *webView;
7
8 @end

ViewController.m文件中,先写一个初始化UI的方法

 1 - (void)stepUI {
 2     self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
 3     [self.view addSubview:self.webView];
 4
 5     self.activityIndicatorView = [[UIActivityIndicatorView alloc] init];
 6     self.activityIndicatorView.center = self.view.center;
 7     self.activityIndicatorView.bounds = CGRectMake(0, 0, 50, 50);
 8     self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
 9     [self.webView addSubview:self.activityIndicatorView];
10 }

在ViewDidLoad方法中加载初始化UI的方法和处理UIWebView要加载的内容,并设置代理

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     [self stepUI];
 4
 5     self.webView.delegate = self;
 6     NSString *str = [NSString stringWithFormat:@"http://www.apple.com/"];
 7     NSURL *url = [NSURL URLWithString:str];
 8     NSURLRequest *request = [NSURLRequest requestWithURL:url];
 9     [self.webView loadRequest:request];
10 }

三.通过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;

 1 #pragma mark ---web view delegate
 2 - (void)webViewDidStartLoad:(UIWebView *)webView {
 3     [self.activityIndicatorView startAnimating];
 4 }
 5 - (void)webViewDidFinishLoad:(UIWebView *)webView {
 6     [self.activityIndicatorView stopAnimating];
 7 }
 8 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
 9     NSLog(@"%@",error);
10 }

对于加载时的出错,楼主只是简单的进行打印

最后,在模拟器上运行即可。

错误总结:

1.最开始写URL时没有写协议http,只是简单的www.apple.com,导致加载失败。

2.设置UIActivityIndicatorView控件的显示样式时,没有考虑到UIWebView的加载页面为白色,还傻兮兮的设置为

self.activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;

导致加载时没有看到显示效果,花了许久的时间才发现问题。所以写代码前一定要思维严谨,多做合理性的考虑。

时间: 2024-08-24 16:26:25

UIWebView和UIActivityIndicatorView的结合使用的相关文章

UIWebView, UIActivityIndicatorView

1 UIWebView *wv = [[UIWebView alloc] init]; // 初始化浏览器控件UIWebView 2 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.dbw.cn"]]; // 定义请求地址 3 [wv loadRequest:request]; // 利用浏览器访问地址 1.使用UIWebView加载网页 运行XCode 4.3

UIWebView 使用

iOS中UIWebView的使用详解 2016-03-05 20:04:03.950 webWiew[52644:2355401] -[ViewController webView:shouldStartLoadWithRequest:navigationType:] -- <NSMutableURLRequest: 0x7f8d5ac36b50> { URL: https://www.baidu.com/ } -- 5 2016-03-05 20:04:03.952 webWiew[5264

UIWebView和网页的交互(OC中调执行JS)

UIWebView和网页的交互(OC中调执行JS) - (void)viewDidLoad { [super viewDidLoad]; // 1.webView UIWebView *webView = [[UIWebView alloc] init]; webView.frame = self.view.bounds; webView.delegate = self; // 伸缩页面至填充整个webView webView.scalesPageToFit = YES; // 隐藏scroll

IOS UIWebView 下拉刷新功能的简单实现

1.运行效果图 2.swift 代码的实现 import UIKit class RefreshWebViewController: UIViewController,UIScrollViewDelegate,UIWebViewDelegate{ @IBOutlet weak var webView: UIWebView! //刷新控件view private var header:UIView! //下拉到50时松开刷新 private let pullHeight:CGFloat=50 //

iOS开发之UIWebView

转自:http://www.cnblogs.com/zhuqil/archive/2011/07/28/2119923.html UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.这篇文章我将使用这个控件,做一个简易的浏览器.如下图: 我们创建一个Window-based Application程序命名为:UIWebViewDemo UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLReques

iOS UIWebView和网页的交互(OC中调执行JS)

UIWebView和网页的交互(OC中调执行JS)- (void)viewDidLoad{[super viewDidLoad];// 1.webViewUIWebView *webView = [[UIWebView alloc] init];webView.frame = self.view.bounds;webView.delegate = self;// 伸缩页面至填充整个webViewwebView.scalesPageToFit = YES;// 隐藏scrollViewwebVie

iOS之 UIWebView的简单学习

UIWebView的简单学习 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> { UIWebView *WebView; UIView *view; UIActivityIndicatorView *activityIndicator; } @end @implementation ViewController - (void)viewDidLoad { [super vi

Objective-C学习—UIWebView的使用

1.使用UIWebView加载网页 运行XCode 4.3,新建一个Single View Application,命名为WebViewDemo. 2.加载WebView 在ViewController.h添加WebView成员变量和在ViewController.m添加实现 [cpp] view plaincopy #import <UIKit/UIKit.h> @interface ViewController : UIViewController { UIWebView *webView

UIWebView控件用法

UIWebView是IOS SDK中一个常用的控件,是内置的浏览器控件,我们可以用它来浏览网页,打开文档等到.本篇博客主要讲解一下UIWebView控件制作简易的浏览器 效果图如下: 在这里首先我采用的是可视化编程,直接在视图上拖放控件. UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数.我们定义一个方法用来加载url.在UIWebViewController.m中定义下面方法: - (void)loadWebPageWithStrin