我正在使用 iOS 6 的社交 API 来发送推文,并且我想要一个进度视图。以下是要显示的消息。
[self.progressView addStatus:@"Posting to Twitter"];
由于我的应用程序可能会同时向多个目的地发送消息,我想在进度视图上显示所有处理状态。因此,一旦将新消息添加到进度视图,我将构建一个子视图,然后将其添加到主进度视图。
UIView *containerView = [[UIView alloc] init];
UIActivityIndicatorView *weiboIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
weiboIndicator.tag = tag + 1;
[weiboIndicator setFrame: CGRectMake(10, 20, weiboIndicator.frame.size.width, weiboIndicator.frame.size.height)];
[containerView addSubview:weiboIndicator];
[weiboIndicator startAnimating];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(34, 23, 40, 60)];
label.tag = tag;
label.text = status;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.font = [UIFont boldSystemFontOfSize:12];
label.adjustsFontSizeToFitWidth = YES;
label.hidden = NO;
[label sizeToFit];
[containerView addSubview:label];
这是一个非常简单的 UIView。然后我将它添加到主进度视图
dispatch_async(dispatch_get_main_queue(), ^{
[[ParallelProgressView sharedView] addSubview:progressVivew];
//change height to accommodate new progress view
[[ParallelProgressView sharedView] setFrame:CGRectMake(bounds.size.width / 4, bounds.size.height / 4, bounds.size.width / 2, (index + 1) * 60 + 40 )];
//[[ParallelProgressView sharedView] setNeedsDisplay];
});
问题是活动指示器立即显示,而不是标签
指示器正在动画,并且视图的高度已更改。但是标签直到不久之后才会显示。