好吧,在阅读了一堆关于这个问题的 SO 帖子之后,我仍然无法解决我的活动指示器的问题。该指示器位于其自己的视图控制器控制下的选项卡中的视图中。它有一个视图,UIWebView
可以很好地加载本地 html 页面。视图被加载,initWithNibName
然后awakeFromNib
. 这是我认为相关的部分:
@implementation HelpViewController
@synthesize webView = _webView;
@synthesize back = _back;
@synthesize forward = _forward;
@synthesize aI = _aI;
- (void) viewDidLoad {
_aI = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[_aI stopAnimating];
// Now add the web view
NSString *filePath = [[NSBundle mainBundle]
pathForResource:@"Help"
ofType:@"html"];
[self.view addSubview:_webView];
_webView.delegate = self;
NSURL* fileURL = [NSURL fileURLWithPath:filePath];
NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
[_webView loadRequest:request];
[super viewDidLoad];
}
-(void) webViewDidStartLoad:(UIWebView *)webView {
[_aI startAnimating];
_back.enabled = NO;
_forward.enabled = NO;
}
-(void) webViewDidFinishLoad:(UIWebView *)webView {
[_aI stopAnimating];
if (webView.canGoBack) {
_back.enabled = YES;
_back.highlighted = YES;
}
if (webView.canGoForward) {
_forward.enabled = YES;
_forward.highlighted = YES;
}
}
导航按钮工作正常。活动指示器放置在笔尖中,但在主视图中,而不是在webView
. 在属性中,我已经Hides When Stopped
检查过了。如果我检查Animating
指示器始终可见且动画,无论我如何浏览UIWebView
.. 如果我取消选中Animating
,Hidden
则会自动为我检查。在这种情况下,指标永远不会出现。所以它要么总是打开,要么总是关闭。
我已经阅读了很多关于您需要在不同线程上使用指示器的情况。我不确定,但我认为这不适用于这里(我加载了一个本地 html 页面,但允许用户导航然后返回到本地页面)。但是,我似乎有些脱节;也许是指标在主视图中但页面在webView
?或者我没有以正确的方法调用事物。或者谁知道...感谢您的帮助!