不确定这是否可行或推荐,但是,我有一个iPhone应用程序,它根据我的用户年龄,身高和体重执行计算。当我点击我的计算按钮时,结果输出是立即的,执行计算并立即填充我的UILabel。
是否可以减慢此速度并在视图警报上进行“计算”,然后填充标签?
答案 0 :(得分:2)
您可以创建一个被触发的简单NSTimer,然后使用UIActivityIndicatorView(例如)在您的应用中显示视图内的“加载/计算”进度(或者甚至将其置于UIAlertView中),然后计时器完成后,显示计算出的标签。
希望这会有所帮助:)
-
编辑;添加了示例代码
spinnerAlertView = [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"My App Name", @"") message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil] autorelease]; // member
spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)]; // member
spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[spinnerAlertView addSubview: spinner];
[spinner startAnimating];
[spinnerAlertView show];
然后,当计算完成时,请记住这样做:
[spinnerAlertView dismissWithClickedButtonIndex:0 animated:TRUE];
你可以告诉它停止动画并将其隐藏在主视图中,但这样我们就可以删除它,就像用户解雇它一样......更容易。
答案 1 :(得分:2)
单击按钮后,显示加载提醒并执行以下操作:
[self performSelector:@selector(calculate) withObject:nil afterDelay:1];
- (void)calculate {
//do your calulation and update the result label
}