[iOS] UIActivityIndicatorView基本建構

本文介紹基本的建構Activity Indicator的方法,這是用來讓使用者只到程式正在處理中,以避免使用者一直按執行,造成當機的情況。

這邊介紹的建構法,是使用程式碼去加入indicator,之後會介紹用物件元件庫去拉到畫面中。

使用程式碼建立


首先,先說明一下要做些什麼。因為這個元件本身是執行程式之後才會顯示,所以這邊會需要做一個按鈕,按下去之後會出現indicator,再按一次會取消掉這個indicator。

你可以開一個新專案,一樣是Single-View Application,然後從元件庫拉一個UIButton到手機畫面上,更改按鈕內文字為你喜歡的,我是改成“顯示”。然後在View Controller裡面建立按鈕的IBAction,名稱為showIndicator。

然後到UIViewController.h裡面,宣佈一個instance variable,此時你的表頭檔應該為:

@interface ViewController : UIViewController{
    UIActivityIndicatorView *indicator;
}
- (IBAction)showIndicator:(id)sender;

@end

然後到實作檔中寫下以下code:

-(void) createIndicator {
    indicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectZero];
    [indicator setCenter:CGPointMake(160.0f, 208.0f)];
    [indicator setHidesWhenStopped:YES];
    [indicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
    [self.view addSubview:indicator];
}

-(IBAction)showIndicator:(id)sender {
    if (indicator == nil) {
        [self createIndicator];
    }
    if ([indicator isAnimating]) {
        [indicator stopAnimating];
    }else{
        [indicator startAnimating];
    }
}

第一個方法是建立indicator的方法,很簡單,裡面有一個是View Style,可以控制indicator的顯示方式。

第二個方法,當你按下按鈕,它首先檢查indicator做了沒,若沒做就呼叫第一個方法去做,做了的話,再看看是不是在播放中,如果有的話就關掉,如果沒在播放,就開始播放。

就這麼簡單,執行看看吧!


使用元件庫建立


這邊的做法類似,首先在手機畫面,把UIActivityIndicatorView拉到手機上,然後把Activity Indicator View裡面的Behavior的Hides When Stopped給勾選,這樣的話當動畫停止時,該元件才會隱藏。然後把這在view controller裡面建立一個Outlet,命名為indicator。

然後再拉一個按鈕進去,跟上面一樣。

然後在實作檔裡面寫:

- (IBAction)showIndicator:(id)sender {
    if ([indicator isAnimating]) {
        [indicator stopAnimating];
    }else{
        [indicator startAnimating];
    }
}

這樣就完成了!

留言