今天说下 UIActivityIndicator 和 UIProgressView的 用法,这两个东东就相当于 android中 progressDialog 和 progressBar,通常 用来 作为 耗时操作的指示器
其中 UIactivityIndicator = ProgressDialog,效果图如下:
UIProgressView = ProgressBar,效果图如下
UIActivityIndicator 部分实现
我们实现一个 点击按钮控制 UIActivityIndicator 旋转或者停止
1 点击xib,像视图控制器上拖动 一个 UIActivityIndicator控件(简单,过程略)
2 在视图对应的controller 中 声明该UIActivityIndicator(简单,过程略)
3 将视图中 的UIActivityIndicator 控件和 controller 中定义的 UIActivityIndicator 链接(简单,过程略)
4 在controller.m中定义 按钮的点击事件,在其中写出 UIActivityIndicator的显示和取消
- (void)btnClick:(id)sender{
if ([_activityIndicator isAnimating]) {
[_activityIndicator stopAnimating];
}else{
[_activityIndicator startAnimating];
}
}
解释下,可以很明显看出来代码的意思。不做过多解释。
5 请注意,该UIActivityIndicator是一直显示的,可以在 视图控制器中 该UIActivityIndicator的属性中勾选 hides when stopped
这样,当停止的时候就会消失。
UIProgressView 部分实现
我们来实现点击按钮 ,进度条每秒加载 1/10,十秒钟后 加载完毕
这块实现起来要比 上面的UIActivityIndicator麻烦一点,主要是 控制刷新 进度,我们采用NSTimer 来实现,NSTimer简称定时器,即以一定的频率 触发某个方法(个人肤浅理解)
1 假定你已经成功实现了 实现UIActivityIndicator中的1,2,3步骤
2 按钮的点击事件处理
- (void)progressViewClick:(id)sender{
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(update) userInfo:nil repeats:true];
}
解释下 各个参数的含义:
scheduledTimerWithTimeInterval:每隔一段时间触发selector对应的方法(单位是 秒)
target:处理 类
selector:处理方法,一般为 @selector(方法名)
userInfo: 待定
repeats:是否循环执行
即每隔一秒就调用下 update 方法
3 update方法
- (void)update{
//每次 加十分之一
_progressView.progress +=0.1;
//当为 100%的时候处理
if (_progressView.progress == 1) {
//停止
[_timer invalidate];
_timer = nil;
//进度条走完,弹出提示框
UIAlertView *alertView = [ [UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:@"no", nil];
[alertView show];
_progressView.progress = 0;
}
必须要说,还是比较容易懂的,毕竟在android中 基本处理都类似
ok,今天 的结束了,好瞌睡。