活动指示器视图在许多应用程序中很有用。 有关如何在iPhone上添加,激活和关闭活动指示器视图的任何想法?
这里欢迎所有方法。
答案 0 :(得分:121)
创建:
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[spinner setCenter:CGPointMake(kScreenWidth/2.0, kScreenHeight/2.0)]; // I do this because I'm in landscape mode
[self.view addSubview:spinner]; // spinner is not visible until started
开始:
[spinner startAnimating];
停止:
[spinner stopAnimating];
当你最终完成后,从视图中删除微调器并释放。
答案 1 :(得分:10)
看一下开源WordPress应用程序。他们创建了一个非常可重复使用的窗口,用于在应用程序当前显示的任何视图的顶部显示“活动进行中”类型显示。
http://iphone.trac.wordpress.org/browser/trunk
您想要的文件是:
然后显示它使用类似的东西:
[[WPActivityIndicator sharedActivityIndicator] show];
并隐藏:
[[WPActivityIndicator sharedActivityIndicator] hide];
答案 2 :(得分:9)
关于:
看一下开源WordPress应用程序。他们创建了一个非常可重复使用的窗口,用于在应用程序当前显示的任何视图的顶部显示“活动进行中”类型显示。
请注意,如果您使用此代码,则必须将所有源代码提供给您自己的应用程序给任何请求它的用户。您需要知道他们可能决定重新包装您的代码并将其自己出售。这些都是根据GNU通用公共许可证(GPL)的条款提供的。
如果您不想被迫打开源代码,那么您就不能使用wordpress iphone应用程序中的任何内容,包括引用的活动进度窗口,而不强制GPL应用于您自己的。
答案 3 :(得分:7)
关于此的文档非常清楚。它是一个UIView子类,因此您可以像使用任何其他视图一样使用它。要开始/停止使用的动画
[activityIndicator startAnimating];
[activityIndicator stopAnimating];
答案 4 :(得分:2)
使用Storyboard -
创建 - 强>
转到头文件并为UIActivityIndicatorView创建一个IBOutlet -
@interface ViewController : UIViewController
@property (nonatomic,strong) IBOutlet UIActivityIndicatorView *activityIndicatorView;
@end
建立从Outlets到UIActivityIndicatorView的连接。
开始:强>
当您需要使用实施文件(.m)中的以下代码启动活动指示符时,请使用以下代码 -
[self.activityIndicatorView startAnimating];
<强>停止:强>
当您需要使用实施文件(.m)中的以下代码停止活动指示时,请使用以下代码 -
[self.activityIndicatorView stopAnimating];
答案 5 :(得分:1)
我认为你应该更好地使用隐藏。
activityIndicator.hidden = YES
答案 6 :(得分:0)
活动指示2秒显示并转到下一页
@property(strong,nonatomic)IBOutlet UIActivityIndicator *activityindctr;
-(void)viewDidload { [super viewDidload];[activityindctr startanimating]; [self performSelector:@selector(nextpage) withObject:nil afterDelay:2];}
-(void)nextpage{ [activityindctr stopAnimating]; [self performSegueWithIdentifier:@"nextviewcintroller" sender:self];}
答案 7 :(得分:0)
- (IBAction)toggleSpinner:(id)sender
{
if (self.spinner.isAnimating)
{
[self.spinner stopAnimating];
((UIButton *)sender).titleLabel.text = @"Start spinning";
[self.controlState setValue:[NSNumber numberWithBool:NO] forKey:@"SpinnerAnimatingState"];
}
else
{
[self.spinner startAnimating];
((UIButton *)sender).titleLabel.text = @"Stop spinning";
[self.controlState setValue:[NSNumber numberWithBool:YES] forKey:@"SpinnerAnimatingState"];
}
}