一旦actionSheet关闭,UIActivityIndi​​cator就会消失

时间:2013-08-23 07:35:46

标签: ios cocoa-touch uiactionsheet uiactivityindicatorview

我从UIActionSheet的clickButtonAtIndex函数启动UIActivityIndi​​cator。这是代码

+(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{

NSLog(@"AS Button Clicked %d",buttonIndex);

UIActivityIndicatorView *indicator=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

indicator.frame=CGRectMake(10, 10, 56, 56);
[indicator startAnimating];
[[actionSheet superview] addSubview:indicator];

}

启动UIActionSheet的代码如下所示

UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil
                                                          delegate: self
                                                 cancelButtonTitle: nil
                                            destructiveButtonTitle: @"Cancel"
                                                 otherButtonTitles: @"Button1",
                               @"Button2", nil];

[actionSheet showFromRect: rect inView: view animated: YES];

但是,单击一个按钮时,UIActivityIndi​​cator会随着UIActionSheet一起消失。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:2)

操作表的超级视图是新窗口或覆盖屏幕的其他视图。当您关闭操作表时,也会删除此其他窗口或视图。

由于您要将活动指示符添加到此其他视图,因此活动指示符将与操​​作表的其余部分一起消失。

您需要将活动指示符添加到与操作表无关的内容中。

答案 1 :(得分:1)

您将其置于行动表的超级视图中。您不知道哪个视图是因为操作表视图层次结构是私有的,并且超视图随操作表一起消失。

将指标放入您的一个视图中。

答案 2 :(得分:0)

问题在于[[actionSheet superview] addSubview:indicator];

请将其编辑为[self.view addSubview:indicator];

您正在将活动指标添加到UIActionSheet,一旦UIActionSheet消失,该指标就会明显消失。

使用已编辑的代码,您将把它添加到View本身。现在,即使在UIActionSheet解雇后,这也会显示活动指标