码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发——UI篇&提示效果

时间:2015-07-13 23:47:31      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

提示效果

 

关于iOS开发提示效果是一个很常见的技术,比如我们平时点击一个按钮,实现回馈,或者发送网络请求的时候!

技术点:

一:View

UIAlertView

UIActionSheet

 

二:控制器

UIAlertController

 

三:第三方库

SVProgressHUD

MBProgressHUD

 

下面是主界面:

技术分享

 

首先我们来看看系统自带的一些提示框(View)

一::UIAlertView

1:创建UIalertView(这里只说纯代码创建的方式)

1 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示框" message:@"请选择" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
2     [alert show];

当我们点击对应地方就会弹出一个提示框

技术分享

如果我们需要实现监听点击那一个按钮就需要遵守协议,并且实现相应的代理方法:

遵守的协议: 1 UIAlertViewDelegate 

实现代理方法,这里我们只实现了一个点击相应按钮的代理监听方法,平时开发中也只需要实现这一个方法,除非有特别的需求

1 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
2 {
3     NSLog(@"UIAlertView被点击");
4 }

 

二:UIActionSheet

步骤同样和上面一样

:创建UIActionSheet(这里显示他使用的不是show是showInView)

1 UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"提示框" delegate:self cancelButtonTitle:@"删除" destructiveButtonTitle:@"更多" otherButtonTitles:@"确定", nil];
2     [action showInView:self.view];

遵守的协议: 1 UIActionSheetDelegate 

实现响应的代理方法:

1 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
2 {
3     NSLog(@"UIActionSheet被点击");
4 }

实现之后显示的界面如下

技术分享

 

三:UIAlertController

在ios中新增了一个控制器,用来替代前面两个提示框的,不过前面两个是View,而这个是控制器,使用方法更加简单,而且可以包含前面两种。

1:创建UIAlertController着方法有两种

方法一:

 1 UIAlertController *alt = [[UIAlertController alloc] init];
 2     [alt addAction:[[UIAlertAction alloc] init]];
 3     [alt addAction:[UIAlertAction actionWithTitle:@"title" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
 4         NSLog(@"iCocos");
 5     }]];
 6     alt.title = @"klasdhgk";
 7     alt.message = @"alukngm";
 8 
 9     
10     [self presentViewController:alt animated:YES completion:^{
11         NSLog(@"iCocos");
12     }];

 

方法二:

1     UIAlertController *al = [UIAlertController alertControllerWithTitle:@"lakdhsg" message:@"adsfgh" preferredStyle:UIAlertControllerStyleAlert];
2     
3     [self presentViewController:al animated:YES completion:nil];
4     
5     

上面有两个地方需要注意的,

1)方法一种使用Addaction添加我们需要的项

2)presentViewController:animated:completion方法适用于弹出控制器的,在后面做项目的时候会经常用到,所以这里需要留意

四:第三方库SVProgressHUD

使用这个库之前我们需要在github上面下载这个Demo,并且将里面的需要的文件拖到我们的项目中

技术分享

然后就可以直接使用了,在相应的代码处直接使用类调用久可以:

 1 - (IBAction)S1:(id)sender {
    //直接显示
2 [SVProgressHUD show]; 3 } 4 5 6 - (IBAction)s2:(id)sender {
    //显示文字(错误)
7 [SVProgressHUD showErrorWithStatus:@"iCocos"]; 8 } 9 10 - (IBAction)s3:(id)sender { 11 //显示进度条 12 [SVProgressHUD showProgress:1.0]; 13 } 14 15 - (IBAction)s4:(id)sender {
    //显示图片
16 [SVProgressHUD showImage:[UIImage imageNamed:@"37x-Checkmark.png"] status:@"成功"]; 17 }

简便方法显示和隐藏

 1     /*
 2 //    [SVProgressHUD show];
 3 //    [SVProgressHUD showWithStatus:@"正在拼命加载"];
 4 //    [SVProgressHUD dismiss];
 5     
 6     
 7 //    [SVProgressHUD showErrorWithStatus:@"错误"];
 8 //    [SVProgressHUD showSuccessWithStatus:@"正确"];
 9     
10     [SVProgressHUD showWithStatus:@"正在拼命加载" maskType:SVProgressHUDMaskTypeBlack];
11      */

这个框架使用非常简单,但是功能不够完善,下面就介绍一个更加好用的框架MBProgressHUD

 

五:MBProgressHUD

这个框架相对SVPMBProgressHUD使用起来没有那么简单,但是也不会有多难,不过特可以实现更多的功能,而且如果有需要我们可以直接修改他的文件来得到我们想要的效果

在github上面下载好了之后导入这个框架

技术分享

 1 - (IBAction)h1:(id)sender {
 2     //直接在View上面显示(类方法)
 3     [MBProgressHUD showHUDAddedTo:self.view animated:YES];
 4 }
 5 
 6 - (IBAction)h2:(id)sender {
 7     //实例方法,直接显示
 8     [[MBProgressHUD alloc] show:YES];
 9 //    [[MBProgressHUD alloc] hide:YES];
10 }
11 
12 
13 - (IBAction)h3:(id)sender {
14     //显示并且执行我们想要的代码
15     [[MBProgressHUD alloc] showWhileExecuting:@selector(Runing) onTarget:self withObject:nil animated:YES];
16 }
17 -(void)Runing
18 {
19     NSLog(@"showing");
20 }

我们一般实现的就是上面的几个方法,当然如果你想更加深入的学习可以直接查看文档,如果你真的闲的蛋疼的话可以自己写一套来用,也可以装装逼不是吗?

笔者简单的实现了一下(不是因为蛋疼噢)

 1 // 1.创建父控件
 2     UIView *cover = [[UIView alloc] init];
 3     cover.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
 4     cover.frame = CGRectMake(0, 0, 150, 150);
 5     cover.center = self.view.center;
 6     
 7     // 修改父控件为圆角
 8     cover.layer.cornerRadius = 10;
 9     [self.view addSubview:cover];
10     
11     // 2.创建菊花
12     // 菊花有默认的尺寸
13     // 注意: 虽然有默认的尺寸, 但是要想显示必须让菊花转起来
14     UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
15     activity.center = CGPointMake(cover.frame.size.width * 0.5, 50);
16     [activity startAnimating];
17     
18     [cover addSubview:activity];
19     // 3.创建UILabel
20     UILabel *label = [[UILabel alloc] init];
21     //    label.backgroundColor = [UIColor purpleColor];
22     label.textAlignment = NSTextAlignmentCenter;
23     label.text = @"正在拼命加载中...";
24     label.frame = CGRectMake(0, cover.frame.size.height - 80, cover.frame.size.width, 80);
25     [cover addSubview:label];

 

/********************************Swift************************************/

笔者在做完任务之后也会偶尔写写swift,毕竟想成为大神这个必须会的,下面就是上面功能的swift实现

 1 /**************************UIAlertView***********************************/
 2     
 3     @IBAction func alert() {
 4         var alert:UIAlertView = UIAlertView(title: "AlertView", message: "请点击", delegate: self, cancelButtonTitle: "取消", otherButtonTitles: "确定", "其他")
 5         alert.show()
 6     }
 7     
 8     func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
 9         
10     }
11     
12     
13     /**************************UIActionSheet**********************************/
14     
15     @IBAction func action() {
16         var action:UIActionSheet = UIActionSheet(title: "AlertView", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: "删除")
17         action.showInView(self.view)
18     }
19 
20     func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
21         
22     }
23     
24     
25     /*************************************************************/
26     
27     @IBAction func alertController1() {
28         var alertController:UIAlertController = UIAlertController()
29         
30         var alacition:UIAlertAction = UIAlertAction(title: "ios", style: UIAlertActionStyle.Default, handler: nil)
31         alertController.addAction(alacition)
32         
33         alertController.title = "asdgasdfg"
34         alertController.message = "asdgdfsg"
35         
36         self.presentViewController(alertController, animated: true, completion: nil)
37 
38     }
39     
40     
41     
42     @IBAction func alertController() {
43         var alertController:UIAlertController = UIAlertController(title: "laksdhfkj", message: "aslkdhfksd", preferredStyle: UIAlertControllerStyle.Alert)
44         self.presentViewController(alertController, animated: true, completion: nil)
45     }
46     
47 
48     
49     

 

注:如果你想使用更傻逼的方法也是可以的,比如使用一个控件,再用动画来控制它的出现可隐藏,不过一看就更大神差太远。。。。哈哈哈哈

 

iOS开发——UI篇&提示效果

标签:

原文地址:http://www.cnblogs.com/iCocos/p/4644044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!