簡體   English   中英

如何使活動指示器立即開始動畫制作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM