#### AlertView控件
弹出对话框:
修改HelloHaoMengZhu项目代码, 添加AlertView:
~~~
-(IBAction)testAlert {
NSString *str = [[NSString alloc] initWithFormat:@"Hello, %@",txtField.text];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"提示" message:str
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[str release];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"%@",@"Ok" );
}
~~~
![](https://box.kancloud.cn/2016-01-06_568cf5cb653dd.jpg)
#### ActionSheet控件
ActionSheet和AlertView比较相似都是给用户一个提示信息。
它是从底部弹出。
它通常用于确认潜在的危险或不能撤消的操作, 如删除一个数据。
为了使用ActionSheet我们需要在h文件中实现UIActionSheetDelegate协议。
其中, 我们常常需要实现:actionSheet:didDismissWithButtonIndex:
该方法是ActionSheet消失的时候调用。
#### 修改Hello-.h文件
~~~
@interface HelloHaoMengZhuViewController : UIViewController
{
UITextField *txtField;
UIActivityIndicatorView * myActivityView;
IBOutlet UIProgressView *Progress;
NSTimer *timer;
}
~~~
在Hello_Controller.h文件中添加协议UIActionSheetDelegate:
~~~
-(IBAction)testActionSheet {
NSString *str = [[NSString alloc] initWithFormat:@"Hello, %@",txtField.text];
UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"提示"
delegate:self
cancelButtonTitle:@"取消"
destructiveButtonTitle:@"确定"
otherButtonTitles:nil];
[str release];
[action showInView:self.view];
[action release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == [actionSheet destructiveButtonIndex]) {
NSLog(@"%@",@"确定" );
} else if (buttonIndex == [actionSheet cancelButtonIndex]) {
NSLog(@"%@",@"取消" );
}
}
~~~
![](https://box.kancloud.cn/2016-01-06_568cf5cb87b84.jpg)
#### 等待有关控件
对于一些费时的处理,
需要使用一些等待控件消除用户心里等待的时间。
等待有关的控件有:
UIActivityIndicatorView
UIProgressView
设计UI:
![](https://box.kancloud.cn/2016-01-06_568cf5cba3bec.jpg)
UIActivityIndicatorView的实现
~~~
-(IBAction)onClickButton2: (id)sender {
if ([myActivityView isAnimating]) {
[myActivityView stopAnimating];
} else {
[myActivityView startAnimating];
}
}
~~~
![](https://box.kancloud.cn/2016-01-06_568cf5cbc6d85.jpg)
UIProgressView的实现
~~~
-(IBAction)start{
Progress.progress = 0.0;
timer = [NSTimer
scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(update)
userInfo:nil repeats:YES];
}
~~~
代码说明:
NSTimer是可以隐式地启动一个线程,
scheduledTimerWithTimeInterval指定线程要休眠多少时间调用一次,
selector所指定的方法update。
~~~
-(void)update{
Progress.progress = Progress.progress + 0.1;
if (Progress.progress == 1.0) {
[timer invalidate];
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"任务通知"
message:@"波多野结衣.avi 下载完成!"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
~~~
代码说明:
UIProgressView控件的progress属性是0.0~1.0烦范围。
0.0时候在开始的位置, 1.0时候是进度到了100%。
![](https://box.kancloud.cn/2016-01-06_568cf5cbe6213.jpg)
![](https://box.kancloud.cn/2016-01-06_568cf5cc16e17.jpg)