Yea*_*000 1 iphone ios mbprogresshud ios5 progress-bar
您好,我一直在尝试使用环形定标显示最后一个小时的进度,但我似乎无法使其按照自己的意愿进行。它要么在我的表视图加载内容之前消失,要么从不完全加载到进度栏。
在我的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];
}
Run Code Online (Sandbox Code Playgroud)
在调用解析器之后,它会通过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];
}
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助!非常感谢你!
我想我得到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];
Run Code Online (Sandbox Code Playgroud)
//捕获进度并将其设置为HUD
- (void)Uploadprogress:(float)progress
{
self.HUD.progress = progress;
}
Run Code Online (Sandbox Code Playgroud)
这对我有用
| 归档时间: |
|
| 查看次数: |
14717 次 |
| 最近记录: |