[英]How to make Activity Indicator start animating right away
在我的代码中,我试图使活动指示器开始对RIGTH进行动画处理,但是由于某些原因,当我单击按钮时,它会首先转到下一页。 当我返回上一页时,它会显示指示器旋转。 这真让我抓狂。 这是我在viewdidLoad中的代码,以便在您首次访问该页面时将其隐藏:
- (void)viewDidLoad
{
[super viewDidLoad];
searchedItem.delegate = self;
activityInd.hidden = YES;
}
这是我的其他代码,用于检查我的按钮是否处于选定模式,以便可以启动动画:
-(IBAction)ClickBtn:(UIButton *)sender
{
sender.selected = ! sender.selected;
if (sender.selected)
{
activityInd.hidden = NO;
[activityInd startAnimating];
}
else
{
NSLog(@" Selected");
}
}
我真的不确定为什么它要等我先离开页面,然后再返回页面使其开始旋转。
感谢所有帮助,在此先感谢:)
我通常将指标控件类设置为单例,并制作指标的superview应用程序委托的窗口。 每当您显示指示器时,指示器都会在关键窗口上。
@interface Indicator : UIActivityIndicatorView
+ (void)show;
+ (void)hide;
@end
@implementation Indicator
+ (Indicator *)shared
{
static Indicator *indicator;
if(indicator == nil)
{
indicator = [[Indicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[indicator setCenter:[[UIApplication sharedApplication] keyWindow].center];
}
return indicator;
}
+ (void)show
{
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
[keyWindow addSubview:[Indicator shared]];
[[Indicator shared] startAnimating];
}
+ (void)hide
{
[[Indicator shared] removeFromSuperview];
[[Indicator shared] stopAnimating];
}
@end
像这样。 这只是我刚刚编写的示例。 无论您想在哪里显示指示器,[Indicator show]都会使事情发生。
在您的IBaction方法中添加,
activityInd.hidden = NO;
[activityInd startAnimating];
[self performSelector:@selector(goToNextPage) withObject:nil afterDelay:2.0];
然后,
在下面添加此方法。
- (void) goToNextPage
{
//call your second page here
}
- (void)viewWillAppear:(BOOL)animated
{
searchedItem.delegate = self;
activityInd.hidden = YES;
[super viewWillAppear:animated];
}
{
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(40, 90, 24, 24);
[self.view addSubview:spinner];
[spinner setHidden:YES];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(10.0, 10.0, 30.0, 49.0);
btn.backgroundColor = [UIColor redColor];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(ClickBtn:) forControlEvents:UIControlEventTouchUpInside];
}
-(IBAction)ClickBtn:(UIButton *)sender
{
sender.selected = ! sender.selected;
if (sender.selected)
{
spinner.hidden = NO;
[spinner startAnimating];
}
else
{
NSLog(@" Selected");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.