嘿伙计们在上一个问题上得到了一些帮助,我想我几乎得到了这个工作...... 代码
-(void)viewDidLoad
{
[super viewDidLoad];
//... all your previous charge.
UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
activity.hidesWhenStopped = YES;
activity.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin |
UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleWidth;
[self.tableview addSubview:activity];
[activity startAnimating];
[activity performSelector:@selector(stopAnimating) withObject:nil afterDelay:0.5];
}
但没有出现..代码没有产生任何错误..所以只是想知道我是否遗漏了什么。
答案 0 :(得分:1)
您已将其设置为在停止动画时隐藏,并且执行选择器停止动画0.5秒后开始动画。另外,这是在视图中完成加载方法。您无法保证视图加载后视图立即可见。所以可能是动画在视图显示之前开始和停止!
尝试将执行选择器放在viewDidAppear方法中,并且至少在开始时将延迟设置为更长的时间。一旦您知道可见时间,您就可以随时更改时间。
祝你好运
答案 1 :(得分:1)
要尝试的一些事项:
目前尚不清楚您的tableView
是否正在显示和/或填充了数据。如果对表格是否存在有任何疑问,请为tableView
设置非白色背景颜色。如果您没有看到tableView
,请先修复此问题,或将activityIndicatorView
添加为您知道可以看到的其他视图的子视图。
为activityIndicatorView
设置一个框架,以便您确切知道它应该出现在哪里
从UIViewAutoResizingFlexibleWidth
的{{1}}中删除UIViewAutoResizingFlexibleHeight
和autoResizingMask
个选项。您不希望activityIndicatorView
根据其超级视图更改大小。
您正在使用白色活动指示器。确保它会在你的tableview和单元格中显示颜色。除非你有一张深色的桌子,否则我会发现灰色活动指示器更明显。
摆脱你的计时器来停止动画,至少在你确定能看到activityIndicatorView
之前。这是一个奇怪的用户体验恕我直言。通常,您应该根据您希望用户了解的应用中的流程启动/停止活动指示
设置activityIndicatorView
,直到您确定可以看到hidesWhenStopped = NO
。
当你看到activityIndicatorView
并且一切看起来都很满意时,你可以添加你想要的行为。
答案 2 :(得分:0)
可能 tableview单元格位于指标视图之上。您可以将活动指标放在tableView.tableHeaderView
或tableView.tableFooterView
中。
或强>
使用[self.view addSubview: activity];
将指示符添加到父视图而不是tableView。
希望这会有效..