軟件開發的時候經常會遇到半天才加載出來數據的情況,不管是程序寫的爛,還是說本來網速比較慢,一般都都會給個提示讓用戶感覺到我們在努力的加載數據,iOS可 以通過UIActivityIndicatorView實現類似的效果。UIActivityIndicatorView 提供輕型視圖,會顯示一個標准的旋轉進度輪,只要添加到程序中,在合適的地方start和stop即可。start的時候可以吸附在當前視圖中,stop的時候就會移除~
活動指示器一般用在進行網絡請求的時候,因為UIActivityIndicatorView是系統自帶的類,所以還是推薦使用的。
UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];// 活動指示器
activityIndicatorView.center = self.view.center;
activityIndicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge; // 活動指示器的樣式
//共有3種:UIActivityIndicatorViewStyleWhiteLarge,UIActivityIndicatorViewStyleWhite,UIActivityIndicatorViewStyleGray
[self.view addSubview:activityIndicatorView];
//isAnimating 用於判斷是否正在轉動
[activityIndicatorView startAnimating]; // 讓活動指示器轉起來,一般在進行網絡請求開始之前調用
[activityIndicatorView stopAnimating]; // 與startAnimating對應,在拿到數據之後調用
下面代碼實現進度輪的啟動和停止:
- (void)viewDidLoad
{
activity = [[UIActivityIndicatorViewalloc] initWithFrame:CGRectMake(0, 0, 30, 30)];//指定進度輪的大小
[activitysetCenter:CGPointMake(160, 140)];//指定進度輪中心點
[activitysetActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];//設置進度輪顯示類型
[self.viewaddSubview:activity];
[superviewDidLoad];
}
//button點擊所觸發的方法。 啟動或關閉進度輪。
- (IBAction)startOrStop:(id)sender{
if([activityisAnimating]){
[activitystopAnimating];
}
else
[activitystartAnimating];
點擊啟動進度輪
在此點擊停止進度輪
Loading效果 UIActivityIndicatorView
//初始化:
UIActivityIndicatorView* indicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
//設置顯示樣式,見UIActivityIndicatorViewStyle的定義
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
//設置顯示位置
[indicator setCenter:CGPointMake(self.frame.size.width / 2, self.frame.size.height / 2)];
//設置背景色
indicator.backgroundColor = UIColor.gray.
//設置背景透明
indicator.alpha = 0.5;
//設置背景為圓角矩形
indicator.layer.cornerRadius = 6;
indicator.layer.masksToBuounds = YES;
//將初始化好的indicator add到view中
[view addSubView:indicator];
//開始顯示Loading動畫
[indicator startAnimating];
//停止顯示Loading動畫
[indicator stopAnimating];
復制代碼