4

iOS のドキュメントにあるように、 [webView stopLoading]webview のロード タスクを停止するにはメソッドを使用する必要があります。

私が見る限り、このメソッドは非同期で実行され、現在処理中のロード リクエストをすぐに停止しません。

ただし、部分をロードするとメインスレッドがブロックされ、アニメーションのフリックが発生する可能性があるため、webviewに進行中のタスクをすぐに停止させる方法が必要です。

それで、これを成功させる方法はありますか?

4

2 に答える 2

2

これは私にとってはうまくいきました。

if (webText && webText.loading){
    [webText stopLoading];
}

webText.delegate=nil;


NSURL *url = [NSURL URLWithString:@""];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webText loadRequest:requestObj];
于 2013-03-29T07:25:12.757 に答える
0

UIWebView を使用して HTML ドキュメントを直接ダウンロードしないでください。ASIHTTPRequestなどの非同期ダウンロード メカニズムを使用して、バックグラウンド スレッドで HTML をダウンロードします。HTMLのコンテンツを取得したら、requestFinishedそれをUIWebViewに渡します。

ASIHTTPRequest のページからの非同期リクエストの作成方法の例:

- (IBAction)grabURLInBackground:(id)sender
{
   NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];
}     

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];
 
   // Use when fetching binary data
   NSData *responseData = [request responseData];
}     

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}

responseStringUIWebView のloadHTMLStringメソッドのパラメーターに を使用します。

UIWebView *webView = [[UIWebView alloc] init];
[webView loadHTMLString:responseString baseURL:[NSURL URLWithString:@"Your original URL string"]];
于 2012-04-12T08:32:52.300 に答える