多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 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)