0

私はiphoneを初めて使用しています。ログイン画面で送信ボタンをクリックするとログイン画面が表示され、しばらくすると検証のためにサーバーにリクエストが送信され、応答が返されます。ユーザーへのアラートビュー。しかし、実際の問題は、ユーザーが送信ボタンをクリックするたびに、1秒のタイマーを使用してアクティビティインジケーターを配置していますが、応答が5秒で来るため、アクティビティインジケーターは4秒前に停止します。どうすればアクティビティを配置できますか応答がサーバー側から来るまでインジケータ.誰かがこれを知っているなら、私を助けてください.

4

3 に答える 3

1

リクエストが完了していない間、「インジケーター」を表示する必要があります

次のように非同期にする必要があります。

-(void) performCheckServer // YOUR FUNCTION 
{

    // Construct your request
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:req delegate:self];
    [connection start];

    // show your indicator
}

 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    //hide indicator
}

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
//hide indicator
}

その他の解決策 : プログレス HUD を使用する

関数を使用します:

    [HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
于 2012-05-15T14:41:14.617 に答える
0

ここを参照してください 完全なステップ y ステップのチュートリアル

http://www.theappcodeblog.com/2011/03/09/activity-indicator-tutorial/

于 2012-05-15T14:37:40.543 に答える
0

インジケーターを消すために何をしていますか?あなたは電話している必要があります:

[yourIndicatorView stopAnimating]

また

[yourIndicatorView removeFromSuperview]

また

yourIndicatorView.alpha = 0.f (<-- bad idea)

...またはアクティビティインジケーターを消す何か。

その呼び出しを、要求が終了したことを示す NSURLConnection コールバックに移動する必要があります。

于 2012-05-15T14:42:34.767 に答える