UIWebView和UIActivityIndicatorView的结合使用
環(huán)境:Xcode6.1
UIWebView是iOS開發(fā)中常用的一個(gè)控件,是內(nèi)置的瀏覽器控件,我們可以用它來瀏覽網(wǎng)頁,加載文檔等。這篇文件將結(jié)合UIActivityIndicatorView控件制作一個(gè)小實(shí)例(加載apple的官網(wǎng))。效果如下:
? ? ?
一.建立一個(gè)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文件中,先寫一個(gè)初始化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要加載的內(nèi)容,并設(shè)置代理
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協(xié)議
UIWebViewDelegate有下面的幾個(gè)方法:
- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載的時(shí)候執(zhí)行
- (void)webViewDidFinishLoad:(UIWebView *)webView;加載完成的時(shí)候執(zhí)行
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載出錯(cuò)的時(shí)候執(zhí)行
UIActivityIndicatorView控件有如下的兩個(gè)方法:
- (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 }
對于加載時(shí)的出錯(cuò),樓主只是簡單的進(jìn)行打印
最后,在模擬器上運(yùn)行即可。
錯(cuò)誤總結(jié):
1.最開始寫URL時(shí)沒有寫協(xié)議http,只是簡單的www.apple.com,導(dǎo)致加載失敗。
2.設(shè)置UIActivityIndicatorView控件的顯示樣式時(shí),沒有考慮到UIWebView的加載頁面為白色,還傻兮兮的設(shè)置為
self.activityIndicatorView.activityIndicatorViewStyle =?UIActivityIndicatorViewStyleWhite;
導(dǎo)致加載時(shí)沒有看到顯示效果,花了許久的時(shí)間才發(fā)現(xiàn)問題。所以寫代碼前一定要思維嚴(yán)謹(jǐn),多做合理性的考慮。
?
轉(zhuǎn)載于:https://www.cnblogs.com/damon-sf/p/4780297.html
總結(jié)
以上是生活随笔為你收集整理的UIWebView和UIActivityIndicatorView的结合使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我看过很多驱魔系列电影(恐怖电影),神父
- 下一篇: BZOJ 1597: [Usaco200