1. 程式人生 > >iOS UIActivityIndicatorView用法(菊花旋轉)

iOS UIActivityIndicatorView用法(菊花旋轉)

使用iPhone經常會看見一朵菊花旋轉,那這個如何使用呢?我們來看看。

其實非常簡單,只需要簡單的控制元件UIActivityIndicatorView就可以了。

初始化方式

- (instancetype)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style

- (instancetype)initWithFrame:(CGRect)frame

其中的第一個初始化方法引數style是個列舉型別。

typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {

    UIActivityIndicatorViewStyleWhiteLarge,

    UIActivityIndicatorViewStyleWhite,

    UIActivityIndicatorViewStyleGray,

};

它是用來設定菊花樣式的。對應的圖片如下:

UIActivityIndicatorViewStyleWhiteLarge  大小是(37,37)     

UIActivityIndicatorViewStyleWhite  大小是(22,22)      

UIActivityIndicatorViewStyleGray   大小是(22,22)

     

背景顏色不屬於它們的樣式,只是我介面的顏色。

對外方法

- (void)startAnimating;  //開啟動畫,也就是開始旋轉。
- (void)stopAnimating;   //停止動畫,旋轉。
- (BOOL)isAnimating;     //獲取狀態 ,0 NO 表示正在旋轉,1 YES 表示沒有旋轉。
屬性
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; // 預設是UIActivityIndicatorViewStyleWhite
@property(nonatomic) BOOL                         hidesWhenStopped;  // default is YES. 設定動畫結束是否隱藏控制元件。

@property (nullable, readwrite, nonatomic, strong) UIColor *color

例子程式碼:
#import "ViewController.h"


@interface ViewController (){
    UIActivityIndicatorView *_indicator;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    _indicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    //設定顯示位置
    _indicator.center = CGPointMake(100.0f, 125.0f);
    //將這個控制元件加到父容器中。
    [self.view addSubview:_indicator];
}
- (IBAction)startAnimation:(id)sender {
    [_indicator startAnimating];
}
- (IBAction)stopAnimation:(id)sender {
    [_indicator stopAnimating];
}

點選開啟控制元件顯示並旋轉。

點選關閉,控制元件停止旋轉並隱藏。

當設定控制元件屬性 

_indicator.hidesWhenStopped = NO;

剛進入這個介面會顯示控制元件。並且停止旋轉也會顯示,只是沒有在轉動而已。

設定背景顏色

//設定背景顏色
_indicator.backgroundColor = [UIColor blueColor]
 blueColor     redColor

設定控制元件顏色 即旋轉部分顏色

//設定菊花顏色。ios5 開始有這個屬性
_indicator.color = [UIColor greenColor];
greenColor     blueColor
 

另一個初始化方法

_indicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(100, 125, 50, 50)];
    //設定背景顏色
_indicator.backgroundColor = [UIColor blueColor];
控制元件中菊花等大小是不變的。這個只是設定這個控制元件的大小。如圖: