1

こんにちは、過去 1 時間、環状決定を使用して進行状況を表示しようとしてきましたが、やりたいことを実行できないようです。テーブルビューにコンテンツが読み込まれる前に消えるか、進行状況バーに完全に読み込まれません。

私の viewDidLoad メソッドでは、次のように MWFeedParser の実行を開始するときに表示します。

- (void)viewDidLoad {

[super viewDidLoad];

// Parse
NSURL *feedURL = [NSURL URLWithString:@"http://myurl.com"];
feedParser = [[MWFeedParser alloc] initWithFeedURL:feedURL];
feedParser.delegate = self;
feedParser.feedParseType = ParseTypeFull; // Parse feed info and all items
feedParser.connectionType = ConnectionTypeAsynchronously;
[feedParser parse];

// Display HUD
[super viewDidLoad];

HUD = [[MBProgressHUD alloc] initWithView:self.view];
HUD.labelText = @"Loading";
HUD.detailsLabelText = @"Just relax";
HUD.mode = MBProgressHUDModeAnnularDeterminate;
[self.view addSubview:HUD];

[HUD showWhileExecuting:@selector(feedParserDidStart:) onTarget:self withObject:nil animated:YES];

}

パーサーを呼び出した後、5 つの異なる手順を実行します。これらの手順を実行するときに HUD を更新したいのですが、それができないようです。次の手順は次のとおりです。

- (void)feedParserDidStart:(MWFeedParser *)parser {
NSLog(@"Started Parsing: %@", parser.url);

float stepsDone = 0.20;    
HUD.progress = stepsDone;

}

- (void)feedParser:(MWFeedParser *)parser didParseFeedInfo:(MWFeedInfo *)info {
NSLog(@"Parsed Feed Info: “%@”", info.title);

float stepsDone = 0.40;    
HUD.progress = stepsDone;


}

- (void)feedParser:(MWFeedParser *)parser didParseFeedItem:(MWFeedItem *)item {
NSLog(@"Parsed Feed Item: “%@”", item.title);
if (item) [parsedItems addObject:item]; 

float stepsDone = 0.60;    
HUD.progress = stepsDone;
}

- (void)feedParserDidFinish:(MWFeedParser *)parser {
NSLog(@"Finished Parsing%@", (parser.stopped ? @" (Stopped)" : @""));
[self updateTableWithParsedItems];

float stepsDone = 0.80;    
HUD.progress = stepsDone;
}

- (void)feedParser:(MWFeedParser *)parser didFailWithError:(NSError *)error {
NSLog(@"Finished Parsing With Error: %@", error);
if (parsedItems.count == 0) {
    // Failed but some items parsed, so show and inform of error

}

//Update Table
[self updateTableWithParsedItems];
}

- (void)updateTableWithParsedItems {
self.itemsToDisplay = [parsedItems sortedArrayUsingDescriptors:
                       [NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"date" 
                                                                            ascending:NO] ]];
self.tableView.userInteractionEnabled = YES;
self.tableView.alpha = 1;
[self.tableView reloadData];

float stepsDone = 1.0;    
HUD.progress = stepsDone;

[HUD hide:YES afterDelay:1];
}

助けていただければ幸いです!どうもありがとうございました!

4

3 に答える 3

5

私はYear3000の答えを得たと思います

self.HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:self.HUD];
self.HUD.mode = MBProgressHUDModeDeterminateHorizontalBar;
self.HUD.delegate = self;
[self.HUD show:YES];

//進行状況をキャッチし、HUD に設定します

- (void)Uploadprogress:(float)progress
{
    self.HUD.progress = progress;
}

これは私のために働く

于 2014-08-27T07:31:28.177 に答える
1

MBProgressHUDは、良い例とともに役立ちます。

于 2012-05-07T08:11:47.177 に答える