-1

编辑:我解决了

我解决了。我变了:

@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator;

@property(nonatomic,retain) IBOutlet UIActivityIndicatorView *activityIndicator;

我的问题:

我正在制作一个简单的 UIWebView 应用程序,我希望指示器在加载完网页后停止旋转。我在故事板界面中选中了“完成后隐藏”,并将指示器连接到视图控制器(activityIndi​​cator)。它仍然没有停止。在我的头文件中,我有这个:

@interface ViewController : UIViewController<UIWebViewDelegate>{
IBOutlet UIBarButtonItem *bBack, *bForward, *toolbarStop, *toolbarRefresh;
IBOutlet UIActivityIndicatorView *_activityIndicator;

BOOL internetOK;
NSTimer *timer;

}
-(void)tryInternet;
-(void)loading;
-(void)startAnimating;
-(void)stopAnimating;
-(void)verifyInternet;
-(IBAction)refresh:(id)sender;
-(IBAction)dontTouchMe:(id)sender;
-(IBAction)refreshWebView:(id)sender;
@property (weak, nonatomic) IBOutlet UIWebView *webview;
@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator;

在我的 .m 文件中,我有这个:

- (void)webViewDidStartLoad:(UIWebView *)webView {
    [_activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [_activityIndicator stopAnimating];

为什么这不起作用?你有什么想法?

4

4 回答 4

0

我假设,您已将委托连接到您的视图控制器。

每当调用webViewDidStartLoad委托时UIWebView,您的动画就会开始。

我认为,方法不是webViewDidFinishLoad方法,而是webViewFailedToLoad调用。因此,您需要[activityIndicator stopAnimating];在该失败的方法中编写代码。

希望,对你有帮助。

干杯!

于 2013-01-02T05:41:10.457 回答
0

在您的.h 文件中,取两个相同的名称,即activityIndi​​cator。然后在你的 .m 文件中合成它,即activityIndicator = _activityIndicator. 然后编写以下代码 -

- (void)webViewDidStartLoad:(UIWebView *)webView
{
 [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
 [activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
 [activityIndicator stopAnimating]; 
}
于 2013-01-02T05:05:34.413 回答
0

我解决了。我变了:

@property(nonatomic,retain) UIActivityIndicatorView *activityIndicator;

@property(nonatomic,retain) IBOutlet UIActivityIndicatorView *activityIndicator;
于 2013-01-04T12:05:37.083 回答
0

尝试使用以下代码。

- (void)webViewDidStartLoad:(UIWebView *)webView
{
 [_activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
 [_activityIndicator setFrame:CGRectMake(200, 10, 20, 20)];
 [self.view addSubview:_activityIndicator];
 [_activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
 [_activityIndicator startAnimating];
}

我希望它会奏效。

于 2013-01-02T04:52:40.320 回答