如果用户点击uialertview上的某个按钮,我需要花费一些时间。我希望在完成后通知用户一个活动指示器。我不确定究竟需要为所需的输出做些什么。这是流程:
用户点击按钮1'建造塔'。
UIAlertview显示“你想要这样做,需要时间”
用户点击“是”: 现在我处于alertview Delegate方法中。
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 1) {//Yes the user wants to do this
//Show activity indicator here
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
[indicator startAnimating];
[alertView addSubview:indicator];
[indicator release];
//
[SimpleFunctions doThatMethodThatTakesALongTime];
//remove activity indicator here
}
}
在这里,我想在“大处理”之前显示一个活动指标。
向alertview添加活动指示器的示例显示如何将指示符添加到上述alertview。但我不希望该指示器出现,直到用户点击“是”。 关于如何实现这一点的任何指示都会很棒。我希望我明白这个问题,如果没有,请告诉我,
由于
答案 0 :(得分:0)
在委托方法- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
中,您可以在那里向alertView添加内容。
E.g。
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
UIActivityIndicator * ai = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[alertView addSubview:activityIndicator];
activityIndicator.frame = CGRectMake(80, 0, 30, 30);
[ai startAnimating];
}
您希望将ai
添加为ivar(类变量),以便稍后将其删除。
[self.ai removeFromSuperview];
希望这有帮助。
编辑:要记住的一件事是,您可能需要自行管理解除警报视图。您可以使用警报视图中的方法- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
来解除它。
答案 1 :(得分:0)
下面:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 1) {//Yes the user wants to do this
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
loading.frame=CGRectMake(150, 150, 16, 16);
[YOURAlertView addSubview:loading];
[SimpleFunctions doThatMethodThatTakesALongTime];
[self performSelector:@selector(turnOff:) withObject:nil afterDelay:1.0];
}
}
-(void) turnOff {
[loading removeFromSuperview];
}
答案 2 :(得分:0)
在您的代表中根据您使用并制作标签以识别不同的警报......
UIAlertview * myAlertView = [[UIAlertView alloc] initWithTitle:@“正在加载”消息:@“你的消息” 委托:自我 cancelButtonTitle:无 otherButtonTitles:无];
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
loading.frame=CGPointMake(myAlertView .bounds.size.width / 2, myAlertView .bounds.size.height - 40);
[myAlertView addSubview:loading];
[loading release];
[myAlertView show];
这可能会对你有所帮助
答案 3 :(得分:0)
使用AlertView
的边界来布局活动指标是一个好主意,但要注意,AlertView
的边界在调用[alertView show]
之前都是零。< / p>