嘿,伙计们,在上一个问题的帮助下,我想我几乎已经完成了..下面的代码
-(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];
}但是什么也没有出现..代码未生成任何错误。所以我想知道我是不是漏掉了什么。
发布于 2011-11-03 13:02:00
下面是一些可以尝试的东西:
tableView是否显示和/或填充了数据。如果对表是否存在有任何疑问,请为tableView设置非白色背景色。如果看不到tableView,请先修复它,或者将activityIndicatorView添加为您知道可以看到的其他视图的子视图。activityIndicatorView设置了一个框架,这样您就可以确切地知道它应该出现的位置,并从<代码>D14的D13中删除UIViewAutoResizingFlexibleWidth和UIViewAutoResizingFlexibleHeight选项。您不希望activityIndicatorView根据其superview.activityIndicatorView之前是这样。这是一个奇怪的UX IMHO。通常,您应该根据应用程序中希望用户知道hidesWhenStopped = NO,直到您可以看到活动指示器为止当您可以看到activityIndicatorView并且一切看起来都令您满意时,您可以添加回您想要的行为。
发布于 2011-11-03 09:57:32
已将其设置为在停止设置动画并且执行选择器在开始动画0.5秒后停止动画时隐藏。此外,这一切都是在视图的加载方法中完成的。不能保证视图在加载后立即可见。因此,动画可能在视图显示之前就开始和停止了!
尝试将执行选择器放在viewDidAppear方法中,并至少在开始时将延迟设置为更长的时间。一旦你知道它是可见的,你总是可以把时间改回来。
祝好运
发布于 2011-11-03 13:07:49
表格视图单元格可能位于indicator视图.Either之上,您可以将activity indicator放在tableView.tableHeaderView或tableView.tableFooterView中。
或
使用[self.view addSubview: activity];而不是tableView将指示器添加到父视图中。希望这能行得通。
https://stackoverflow.com/questions/7989368
复制相似问题