日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

UIWebView和UIActivityIndicatorView的结合使用

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIWebView和UIActivityIndicatorView的结合使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。