UIWebView加载时如何实现UIActivityIndi??catorView? (iPhone O
发布时间:2020-12-14 19:51:09 所属栏目:百科 来源:网络整理
导读:我想知道如何在基于WebView的应用程序中实现一个activityIndi??cator,我写了以下代码,但是该指标没有出现. webview加载文件本地,所以它加载非常快,但是当它加载外部页面它加载缓慢,我需要指示符… FirstViewController.h #import UIKit/UIKit.h @interface F
我想知道如何在基于WebView的应用程序中实现一个activityIndi??cator,我写了以下代码,但是该指标没有出现.
webview加载文件本地,所以它加载非常快,但是当它加载外部页面它加载缓慢,我需要指示符… FirstViewController.h #import <UIKit/UIKit.h> @interface FirstViewController : UIViewController <UIWebViewDelegate>{ IBOutlet UIWebView *webview1; NSURL *urlLocation; IBOutlet UIActivityIndicatorView *m_activity; } @property (nonatomic,retain) UIActivityIndicatorView *m_activity; - (IBAction)searchbutton:(id)sender; - (IBAction)home:(id)sender; @end FirstViewController.m #import "FirstViewController.h" @implementation FirstViewController @synthesize m_activity; // viewWillAppear loads every time younopen up this View - (void)viewWillAppear:(BOOL)animated { NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; urlLocation = [NSURL fileURLWithPath:filePath]; [webview1 loadRequest:[NSURLRequest requestWithURL:urlLocation]]; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { //Initialization code m_activity = nil; } return self; } - (void)webViewDidFinishLoad:(UIWebView *)webView { m_activity.hidden= TRUE; [m_activity stopAnimating]; NSLog(@"Web View started loading..."); } - (void)webViewDidStartLoad:(UIWebView *)webView { m_activity.hidden= FALSE; [m_activity startAnimating]; NSLog(@"Web View Did finish loading"); } 解决方法
为什么在init中设置你的活动指标为零?
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { //Initialization code m_activity = nil; } return self; } 来自XIB的超级初始化您的指示器的调用(假设您将其连接到IB中的插座),但是在初始化之后,将引用设置为nil.删除该行.然后回到界面构建器,并设置“隐藏时停止”复选框.现在,您可以简化显示指标的代码: - (void)webViewDidFinishLoad:(UIWebView *)webView { [m_activity stopAnimating]; } - (void)webViewDidStartLoad:(UIWebView *)webView { [m_activity startAnimating]; } 当停止动画时,“隐藏停止”会使指示灯隐藏. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |