>

从中间弹出澳门博发娱乐官网:,从今天起我们

- 编辑:澳门博发娱乐官网 -

从中间弹出澳门博发娱乐官网:,从今天起我们

这几天在做推送消息的处理,要有个提示框.花了几个小时,我整理了下UIAlertView与UIAlertController,闲话不多说,上代码.

UIAlertController

UIAlertController 

//IOS8以上版本,使用UIAlertController代替 UIActionSheet和UIAlertView

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{

//preferredStyle:样式两种。
//一种是:alertView类型。从中间弹出
//一种actionsheet类型。从下面弹出

UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"请输入密码" message:nil preferredStyle:UIAlertControllerStyleActionSheet];

//相当于我们alertView中的按钮系统绑定了一个blok块(对应的按钮的触发事件)

UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"取消按钮被点击了");
}];

//按钮:没有索引没有代理了有Block可以响应事件

UIAlertAction * actionDel = [UIAlertAction actionWithTitle:@"删除" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"这是要删除一条信息");
}];

//添加文本输入框actionsheet类型的不支持

//[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.secureTextEntry =YES;
}];

//添加行为按钮
[alert addAction:action];
[alert addAction:actionDel];

//模态展示方式
[self presentViewController:alert  animated:YES completion:nil];

}


IOS中UIActionSheet使用方法详解

1.前言
之前简单的学习了Objective-C的基础语法,从今天起我们开始学习简单的IOS视图开发。

想要自己的app能够定位成功,相对于系统来说要开启两个权限

- touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self alertStyleWithTwoTextField]; [self alertStyleWithTextField]; [self alertStyle]; [self actionSheetStyle]; [self loginAndPassword]; [self secureText]; [self plainText]; [self defaultAlert]; [self actionSheet];}

UIAlertView

提示框 

//创建一个提示框
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示框" message:@"密码错误" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定",nil];

//导入代理协议UIAlertViewDelegate。设置代理
//alert.delegate = self;初始化时已经写了代理

//show一下展示提示框
[alert show];

#pragma mark == UIAlertViewDelegate方法

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

//-(void)alertViewCancel:(UIAlertView *)alertView

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
//条件判断语句
switch(buttonIndex) {
case0:
NSLog(@"点击了取消按钮");
break;

case1:
NSLog(@"点击了确定按钮");
break;

default:
break;
}
}


一、初始化方法

- (instancetype)initWithTitle:(NSString *)title delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...;

参数说明:

title:视图标题

delegate:设置代理

cancelButtonTitle:取消按钮的标题

destructiveButtonTitle:特殊标记的按钮的标题

otherButtonTitles:其他按钮的标题

2.UIAlertView入门
2.1普通弹框
使用提示视图的最好方法,当然是使用特定的初始化方法:

1)开启系统定位,下面代码可以判断系统的定位是否开启

下面是几种状态

UIActionSheet

ActionSheet 

//UIActionSheet: 标题选项提示框
//initWithTitle:提示框的标题
//delegate:代理:self表示当前类的调用
//destructiveButtonTitle:选项功能按钮标题为红色字体,默认第0个选项是红色字体,可以修改,手动设置属性
//otherButtonTitles:其他按钮标题

//触发提示框的方法
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"提示框标题" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"警示性选项标题" otherButtonTitles:@"第一个选项",@"第二个选项",nil];

//设置红色字体选项的索引
actionSheet.destructiveButtonIndex= 0;

//设置取消按钮的索引
actionSheet.cancelButtonIndex= 3;

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

//显示提示框
[actionSheetshowInView:self.view];

}

#pragma mark ===== actionSheet代理方法

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

switch(buttonIndex) {

case0:
//警示选项
break;

case1:
//第一个选项
break;

case2:
//第二个选项
break;

case3:
//取消按钮
break;

default:
break;
}
}

//在点击选项按钮以后actionSheet将要消失的时候调用
-(void)actionSheet:(UIActionSheet*)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex{
NSLog(@"willDismissWithButtonIndex ======%ld",(long)buttonIndex);
}

//在点击选项按钮以后actionSheet已经消失的时候调用
-(void)actionSheet:(UIActionSheet*)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
NSLog(@"didDismissWithButtonIndex===%ld",(long)buttonIndex);
}

二、常用方法和属性介绍

@property(nonatomic,copy) NSString *title;

设置标题

@property(nonatomic) UIActionSheetStyle actionSheetStyle;

设置风格,枚举如下:

typedef NS_ENUM(NSInteger, UIActionSheetStyle) {

UIActionSheetStyleAutomatic        = -1,

UIActionSheetStyleDefault          = UIBarStyleDefault,

UIActionSheetStyleBlackTranslucent = UIBarStyleBlackTranslucent,

UIActionSheetStyleBlackOpaque      = UIBarStyleBlackOpaque,

};

- (NSInteger)addButtonWithTitle:(NSString *)title;

添加一个按钮,会返回按钮的索引

- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex;

获取按钮标题

@property(nonatomic,readonly) NSInteger numberOfButtons;

获取按钮数量

@property(nonatomic) NSInteger cancelButtonIndex;

设置取消按钮的索引值

@property(nonatomic) NSInteger destructiveButtonIndex;

设置特殊标记

@property(nonatomic,readonly,getter=isVisible) BOOL visible;

视图当前是否可见

下面是几种弹出方式,会根据风格不同展现不同的方式

- (void)showFromToolbar:(UIToolbar *)view;

- (void)showFromTabBar:(UITabBar *)view;

- (void)showFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated ;

- (void)showFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated ;

- (void)showInView:(UIView *)view;

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;

使用代码将视图收回

 

[CLLocationManager locationServicesEnabled];

2)开启本app的允许定位权限,下面代码可以判断当前的允许定位状态

//原来的最- defaultAlert{ // iOS8被废弃 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alertView" message:@"默认样式" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"查看",@"评论", nil]; alert.alertViewStyle = UIAlertViewStyleDefault; [alert show];}

三、UIActionSheet代理方法

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;

点击按钮时触发的方法

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet;

视图将要弹出时触发的方法

- (void)didPresentActionSheet:(UIActionSheet *)actionSheet;

视图已经弹出式触发的方法

- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex;

点击按钮后,视图将要收回时触发的方法

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;

点击按钮后,视图已经收回时触发的方法

[plain]

```[CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied```

当你要使用提示框的按钮,比如说跳转的时候这时候你就要用到代理了

  • (void)viewDidLoad 

        [super viewDidLoad]; 
        // Do any additional setup after loading the view, typically from a nib. 
         
        //Title:这个字符串会显示在提示视图的最上面的Title。 
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title" 
        //message:这是要给用户看的实际讯息。 
        message:@"Message" 
        //delegate:我们可以传递委托对象(可选)给提示视图。当视图状态变更时,委托对象会被通知。传递的参数对象必须实践UIAlertViewDelegate协定. 
        delegate:nil 
        //cancelButtonTitle:可选参数。这个字符串符会显示在提示视图的取消按钮上。通常有取消按钮的提示视图都是要要求用户做确认,用户若不愿意进行该动作,就会按下取消。这个按钮的的标是可以自行设定的,不一定会显示取消。 
        cancelButtonTitle:@"Cancel" 
        //otherButtonTitles:可选参数。若你希望提示视图出现其他按钮,只要传递标题参数。此参数需用逗号分隔,用 nil 做结尾。 
        otherButtonTitles:@"Ok", nil]; 
        [alertView show]; 

在app安装成功之后有定位需求的情况下系统进行两次询问是否开启app定位,有alert提示框,如果在提示框处同意开启定位则不用跳转设置的开启定位。

#pragma mark - UIAlertViewDelegate- alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"点击的%ld",buttonIndex); if (buttonIndex == 1) { NSLog(@"点击了这个是有效果的"); secondViewController *secondVC = [[secondViewController alloc] init]; [self presentViewController:secondVC animated:YES completion:nil]; }}

- (void)viewDidLoad
{
    [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
   
    //Title:这个字符串会显示在提示视图的最上面的Title。
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title"
    //message:这是要给用户看的实际讯息。
    message:@"Message"
    //delegate:我们可以传递委托对象(可选)给提示视图。当视图状态变更时,委托对象会被通知。传递的参数对象必须实践UIAlertViewDelegate协定.
    delegate:nil
    //cancelButtonTitle:可选参数。这个字符串符会显示在提示视图的取消按钮上。通常有取消按钮的提示视图都是要要求用户做确认,用户若不愿意进行该动作,就会按下取消。这个按钮的的标是可以自行设定的,不一定会显示取消。
    cancelButtonTitle:@"Cancel"
    //otherButtonTitles:可选参数。若你希望提示视图出现其他按钮,只要传递标题参数。此参数需用逗号分隔,用 nil 做结尾。
    otherButtonTitles:@"Ok", nil];
    [alertView show];
}

引导用户跳转设置开启定位界面一般以弹出alert框的形式,在跳出alert框之前判断当前是否开启定位,如若开启不弹引导框

要说的一点是,这个提示框下方的按钮你可以给他设置tag值,如果不设置的话那么从下往下数buttonIndex的值从1开始.最后的取消的buttonIndex值是0.

运行结果:

[UIAlertView bk_showAlertViewWithTitle:@"打开“定位服务”来允许“你的app”确定你的位置" message:@"你的app需要使用您的位置来为你提供服务" cancelButtonTitle:@"取消" otherButtonTitles:@[@"设置"]handler:^(UIAlertView *alertView, NSInteger buttonIndex) {

然后说说其他的

 

if (buttonIndex == 1) {

本文由胜博发-编程发布,转载请注明来源:从中间弹出澳门博发娱乐官网:,从今天起我们