设定样式
样式类型
UIActivityIndicatorViewStyleWhiteLarge
UIActivityIndicatorViewStyleWhite
UIActivityIndicatorViewStyleGray
设定样式
[activity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activity.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
设定尺寸
尺寸大小
设定尺寸
activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[activity setCenter:CGPointMake(160, 140)];//指定进度轮中心点
[activity setFrame:CGRectMake(200.0, 0.0, 22.0, 22.0)];
activity.frame = CGRectMake(160, 230, 0, 0);
设定颜色
activity.color = [UIColor redColor];
[activity setColor:[UIColor redColor]];
设定隐藏
hidesWhenStopped属性是一个BOOL型,表示活动指示器停止时隐藏
activity.hidesWhenStopped = NO;
运动属性
isAnimating属性是BOOL型,表示活动指示器正在滚动
startAnimating表示开始旋转
stopAnimating表示停止旋转
代码示例
- (IBAction)startOrStop:(id)sender{
if([activity isAnimating]){
[activity stopAnimating];
}
else
[activity startAnimating];
}
显示视图
[self.view addSubview:activityIndicatorView];
实战示例
UIActivityIndicatorView 通常都会使用在读取 Loading 画面中,用来表示程式仍在进行,只是需要时间来完成目前步骤,而 UIActivityIndicatorView 也可以直接从 Interface Builder 里的物件群拉出来使用,不过绝大部分在使用上还是采用动态产生(使用代码产生)比较多,下列代码演示如何在画面上建立一个 UIActivityIndicatorView,请看以下程式码。
UIActivityIndicatorView *activty = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[activty startAnimating];
[activity setFrame:CGRectMake(200.0, 0.0, 22.0, 22.0)];
[activity setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];
使用技巧
黑色背景下最适合白色版本的外观,白色背景最适合灰色外观。它非常瘦小,而且采用夏普风格。选择白色还是灰色时要格外注意。全白显示在白色背景下将不能显示任何内容。而UIActivityIndicatorViewStyleWhiteLarge通常用于深色背景。它提供最大、最清晰的指示器。
网络活动指示器
当你的应用程序使用网络时,应当在iPhone的状态条上放置一个网络指示器,警告用户正在使用网络。这时你可以用UIApplication的一个名为networkActivityIndicatorVisible的属性。通过设置这个可以启用或禁用网络指示器
UIApplication* app = [ UIApplication sharedApplication ];
pp.networkActivityIndicatorVisible = YES;
拓展
是不是觉得又学了点新东西呢?不过我还有个更好的东西推荐,他就是:MBProgressHUD(https://github.com/jdg/MBProgressHUD) 一个更NB的第三方进度指示器,你可以按照它提供的例子去使用它,很强大的。不过有一点我要提醒你的是它是异步的,所以并不能阻塞你当前的程序,如果你想阻塞你的程序还要在逻辑控制上做一点修改。