webView の再読み込み停止ボタンを実装しようとしています。これが私のコードです:
- (IBAction)stopOrReloadButtonClick:(id)sender {
if (self.webView.loading) {
[self.webView stopLoading];
}
else {
[self.webView reload];
}
}
およびデリゲート メソッド:
- (void)webViewDidStartLoad:(UIWebView *)webView {
if (indicator != nil && indicator.isAnimating == NO) {
[indicator startAnimating];
}
[self.stopReloadButton setImage:[UIImage imageNamed:@"Stop.png"] forState:UIControlStateNormal];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[self.stopReloadButton setImage:[UIImage imageNamed:@"Refresh.png"] forState:UIControlStateNormal];
[self setNavigationButtonsState];
[indicator stopAnimating];
}
ご覧のとおり、機能は次のとおりです。 webView が既にコンテンツをロードしている場合、ボタンは「丸い矢印」になります。押された場合、webView は現在のページをリロードし、ボタン イメージを「クロス」に変更します。これは、リロードを停止することを意味します。押された場合、ページのリロードを停止する必要があります。webView の読み込みが完了すると、画像は再び「丸い矢印」に変わります。したがって、問題は、webView が対応するデリゲート メソッドをロードしているときに「停止」を押すと、(void)webViewDidFinishLoad:(UIWebView *)webView が呼び出されないことです。なんで ?そして、そのような機能を実装する方法は?