0

アニメーション化されたアクティビティ インジケーターと「読み込み中」を表示するラベルを含む読み込み画面があります。すべて Interface Building を使用して作成されました。この画面は、RSS フィードの解析が完了するまでユーザーに表示されます。

デバイスがインターネットに接続されていない場合、アクティビティ インジケーターはビューから削除され、その場所にリロード ボタンが表示され、ラベル テキストが「リロード」に変更されます。

@synthesize loadingView, loadingIndicator, loadingLabel;

BOOL isFirstOffersLoad = YES;

-(void)viewDidAppear:(BOOL)animated
{
    if (isFirstOffersLoad) [self parseFeed];
    [super viewDidAppear:animated];

}

-(void)viewDidLoad
{
    self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Navigation"]];
}

- (void)parseFeed
{
[self.loadingIndicator startAnimating];
self.loadingIndicator.hidesWhenStopped = YES;

NetworkStatus networkStatus = [[Reachability reachabilityForInternetConnection] currentReachabilityStatus];
if (networkStatus == NotReachable) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Network Unavailable" message:@"More Cobalt requires an Internet connection" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];

    self.loadingLabel.text = @"Reload";
    self.loadingIndicator.hidesWhenStopped = YES;
    [self.loadingIndicator stopAnimating];
    self.reloadButton.hidden = NO;
}
else {
    // Download and parse XML data
    [loadingView removeFromSuperview];
    [self.loadingIndicator stopAnimating];
    isFirstOffersLoad = NO;
}
}

- (IBAction)reload:(id)sender {
    [self parseFeed];
}

ただし、リロードボタンをタップすると、ボタンが非表示になり、アクティビティインジケーターが再表示され、ラベルのテキストが再び「読み込み中」に変更されます。アプリを最初に起動したときのように。

誰かが私を助けることができますか?

4

1 に答える 1

0

reload メソッドはボタンの押下に応答するため、必要な変更を追加するだけです。

- (IBAction)reload:(id)sender {
    [self parseFeed];

    self.loadingLabel.text = @"Loading";
    [self.loadingIndicator startAnimating];
    self.reloadButton.hidden = YES;
} 
于 2013-11-05T19:03:05.740 に答える