用来弹出sheet view必威:,3.填入数据点击确定

如若说<苹果Xcode帮忙文书档案阅读指南>是户撒刀,那笔者那正是倚天剑.哈哈~,计算了好几iOS开荒学习的小手艺,希望能对校友们有一点点扶持.

 

UIAlertController(iOS8)是 UIAlertViewUIActionSheet 代表和进级版。

先来看看效果

开卷苹果Xcode支持文书档案无疑是狠抓开拓程度最佳办法之一, @tinyfool总计的<苹果Xcode扶助文书档案阅读指南>, 特别实用, 推荐给前些天还不明了什么看文书档案的同学.

UIActionSheet是在iOS弹出的挑选开关项,能够增加多项,并为每项加多点击事件。

UIAlertController 继承 UIViewController ,所以弹出格局得以用 模态弹出

前几天在钻探UIActionSheet 直接把代码放到viewDidLoad中来施行,费了半天的劲总是出现难题,也存疑过是或不是xcode的难题,后来发觉日常用都以放到一个button的艺术里来操作,于是有个观点发生UIActionSheet必需合营动作时才有效应。于是去查看开辟文书档案,上边有句话也表达了见识:Action sheets display a set of buttons representing several alternative choices to complete a task initiated by the user.

1.点击登入开关  弹出UIActionSheet

今天大家要总括的是, 利用Xcode, 查找头文件, 进行急迅有效的读书情势, 总括为一个字----"".

为了连忙产生那例子,我们张开Xcode 4.3.2, 先创设一个single view application。然后再xib文件增添多少个button,用来弹出sheet view。


合英语档:

2.点击显著  弹出UIAlertView带文本框

先上神兵利器---- "command + F", 寻觅急迅键可以扶助大家火速寻找所供给的东西. 不明白的同班能够任由找个地点试试...

1、首先在.h文件中落到实处公约

加代码的地方在@interface那行的末梢增多<UIActionSheetDelegate>,合同一定于java里的接口,落成公约里的法子。

[cpp] view plaincopy

  1. @interface sheetviewViewController : UIViewController<UIActionSheetDelegate>  
  2.   
  3. @end  

 

1:初始化

开头化代码:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"作者是唤醒的剧情" preferredStyle:UIAlertControllerStyleAlert ];

最初化选拔 UIAlertController风格:

style:UIAlertControllerStyleAlert  (Alert)

style:UIAlertControllerStyleActionSheet(ActionSheet)

代码:

3.填入数分局击鲜明

步入后天的主旨, 看过头文件的同学都应当清楚, 少的有三十多行, 多的有上千行, 种种品质, 各类措施, 各式各样, “拥挤不堪”啊, 单靠记念也许是记不完的, 所以查很好的缓慢解决了作者们的主题材料, 那么哪些来查吗?

2、添加button,命名button为showSheetView.

2:增添开关

撤回按键(靠左):

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];

[alertController addAction:cancelAction];

分明按键(靠右):

UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];

[alertController addAction:OKAction];

开关风格:

style:UIAlertActionStyleDefault-->典型样式

style:UIAlertActionStyleCancel-->撤除样式,即撤废操作

style:UIAlertActionStyleDestructive-->警示性样式(字体天灰)

@interface sheetviewViewController : UIViewController

4.提示收到音信

比如, 借使大家相遇没见过的控件, 不明了的秘技, 怎么做, 查, 怎么查, 在xcode中, 按住command, 点击控件名只怕方法(只若是能点进去的都得以), 然后就能够进去头文件, 此时就足以服从”三步走计策"来急迅查看头文件了.

3、为button建立Action映射,映射到.h文件上,事件类型为Action ,命名称叫showSheet。

3:显示

[self presentViewController:alertController animated:YES completion:nil];


@end

代码如下:

率先步: 看它接二连三于什么人

4、在.m文件上加多点击事件代码

图的法力是如此的:

必威 1

 

[cpp] view plaincopy

  1. - (IBAction)showSheet:(id)sender {  
  2.     UIActionSheet *actionSheet = [[UIActionSheet alloc]  
  3.                                   initWithTitle:@"title,nil时不展现"  
  4.                                   delegate:self  
  5.                                   cancelButtonTitle:@"取消"  
  6.                                   destructiveButtonTitle:@"确定"  
  7.                                   otherButtonTitles:@"第一项", @"第二项",nil];  
  8.     actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;  
  9.     [actionSheet showInView:self.view];  
  10. }  

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;//设置样式

参数解释:   

cancelButtonTitle  destructiveButtonTitle是系统活动的两项。

otherButtonTitles是和煦定义的项,注意,最后一个参数若是nil。

 

[actionSheet showInView:self.view];那行语句的情趣是在这段日子view展现Action sheet。当然仍是能够用别样措施呈现Action sheet。

对应下面的图和代码,一览无遗了把

旧方法:(UIAlertView)

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"first ActionSheet" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"删除" otherButtonTitles:@"保持", nil];

#import "ViewController.h"

第二步: 看它有未有自个儿的开始化方法, 若无就用父类的

5、接下去我们怎么相应Action Sheet的选择的风云呢?

兑现左券里的办法。为了能旁观点击Action sheet各类的效率,大家加入UIAlertView来做音信显示。上边是包装的一个主意,传入对应的音信,在UIAlertView展现相应的新闻。

[cpp] view plaincopy

  1. -(void)showAlert:(NSString *)msg {  
  2.     UIAlertView *alert = [[UIAlertView alloc]  
  3.                           initWithTitle:@"Action Sheet选择项"  
  4.                           message:msg  
  5.                           delegate:self  
  6.                           cancelButtonTitle:@"确定"  
  7.                           otherButtonTitles: nil];  
  8.     [alert show];  
  9. }  

那相应被Action Sheet选项实行的代码如下:

[cpp] view plaincopy

  1. (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex  
  2. {  
  3.     if (buttonIndex == 0) {  
  4.         [self showAlert:@"确定"];  
  5.     }else if (buttonIndex == 1) {  
  6.         [self showAlert:@"第一项"];  
  7.     }else if(buttonIndex == 2) {  
  8.         [self showAlert:@"第二项"];  
  9.     }else if(buttonIndex == 3) {  
  10.         [self showAlert:@"取消"];  
  11.     }   
  12.   
  13. }  
  14. - (void)actionSheetCancel:(UIActionSheet *)actionSheet{    
  15.   
  16. }    
  17. -(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{    
  18.   
  19. }    
  20. -(void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex{    
  21.   
  22. }  

可以见到 buttonIndex 是相应的项的目录。

见状那么些浅蓝的按键没?那是ActionSheet帮助的一种所谓的销毁按键,对某户的有个别动作起到警示成效,

例如永远性删除一条音讯或图像时。若是您钦定了贰个销毁开关他就能够以革命高亮展现:

actionSheet.destructiveButtonIndex=1;  

与导航栏类似,操作表单也支撑二种风格 :

UIActionSheetStyleDefault              //暗中同意风格:古铜黑背景上出示深均红文字   

UIActionSheetStyleBlackTranslucent     //透明藏蓝背景,卡其色文字   

UIActionSheetStyleBlackOpaque          //纯黑背景,紫色文字  

用法:

 actionSheet.actionSheetStyle = UIActionSheetStyle布莱克Opaque;//设置样式

本身选sheet 里的首先项,展现如下:

必威 2

 

1:初始化

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提 message:@"笔者是提示音讯" delegate:self  cancelButtonTitle:@"裁撤" otherButtonTitles:@"分明", nil];

actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[actionSheet showInView:self.view];

@interface ViewController ()

其三步: 看它是否有代理, 若是有, 看如何措施是必需贯彻的

6、注意事项

在付出进度中,开掘有的时候候UIActionSheet的末尾一项点击失效,点末了一项的上半区域时有效,这是在一定情景下才会产生,那个现象正是试用了UITabBar的时候才有。消除办法:

在showView时如此使用,[actionSheet showInView:[UIApplication sharedApplication].keyWindow];或者[sheet showInView:[AppDelegate sharedDelegate].tabBarController.view];那样就不会发生遮挡现象了。

 

代码获取:

小说权注明:本文由原创

2:显示alertView

[alertView show];

#pragma mark---实现UIActionSheetDelegate协议

@end

以UIActionSheet为例:

3:代理方法:(UIAlertViewDelegate)

1.当点击UIAlertView上的开关时,就能够调用,何况当方法调完后,UIAlertView会自动消失。

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

2.当UIAlertView将在出现的时候调用

- (void)willPresentAlertView:(UIAlertView*)alertView;

3.当UIAlertView完全出现的时候调用

- (void)didPresentAlertView:(UIAlertView*)alertView;

4.当UIAlertView将要消失的时候调用

- (void)alertView:(UIAlertView*)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex;

5.当UIAlertView全然消灭的时候调用

- (void)alertView:(UIAlertView*)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

  • (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{

@implementation ViewController

在Xcode中输入UIActionSheet, 按住command点击, 进入到头文件, 实践“三步走计谋” :

4:补充

     固然要修改alertView控件的frame,举个例子text地方是居中的,如果要让其向左偏移,在代理方法第22中学遍历alertView.subviews,判别控件所属的class,修改就能够。

越多措施:重温UIAlertView


if (buttonIndex == 0) {
[self showAlert:@"确定"];
}else if (buttonIndex == 1) {
[self showAlert:@"第一项"];
}else if(buttonIndex == 2) {
[self showAlert:@"第二项"];
}else if(buttonIndex == 3) {
[self showAlert:@"取消"];
}

- (void)viewDidLoad {

必威 3

旧方法:(UIActionSheet)

NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex];
NSLog(@"buttonTitle = %@",buttonTitle);
}

[super viewDidLoad];

首先步: 承继于UIView, 立马想到UIView的富有东西它都足以用.(OC三大特征中的承继 , 必要求明白的 )

1:初始化:

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@" 小编是Action Shee样式" delegate:self cancelButtonTitle:@"撤除" destructiveButtonTitle:@"作者是巴黎绿" otherButtonTitles:@"原来是那样", nil];

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;//设置样式

// 设置荧屏背景图片,自定义图片

本文由必威发布于必威-编程,转载请注明出处:用来弹出sheet view必威:,3.填入数据点击确定

相关阅读