IOS 中的三种弹框模式
2015-06-01 10:20
671 查看
#pragma mark 方法1
/**
* 一般用在IOS8以前,用到了代理
*/
- (void)use1
{
// 1.创建一个中间弹框,有“取消”和“确定按钮”,设置代理为当前控制器
UIAlertView *alert = [[UIAlertView
alloc] initWithTitle:@"提示"
message:@"点击了图片按钮"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定",
nil];
// 2.显示在屏幕上
[alert show];
}
#pragma mark 方法2
/**
* 用在IOS8,没有用到代理
*/
- (void)use2
{
// 1.创建弹框控制器, UIAlertControllerStyleAlert这个样式代表弹框显示在屏幕中央
UIAlertController *alertVc = [UIAlertController
alertControllerWithTitle:@"提示"
message:@"点击了头像"
preferredStyle:UIAlertControllerStyleAlert];
// 2.添加取消按钮,block中存放点击了“取消”按钮要执行的操作
UIAlertAction *cancle = [UIAlertAction
actionWithTitle:@"取消"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
NSLog(@"点击了取消");
}];
UIAlertAction *confirm = [UIAlertAction
actionWithTitle:@"确定"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
// 3.将“取消”和“确定”按钮加入到弹框控制器中
[alertVc addAction:cancle];
[alertVc addAction:confirm];
// 4.控制器
展示弹框控件,完成时不做任何操作
[self
presentViewController:alertVc
animated:YES
completion:^{
nil;
}];
}
#pragma mark 方法3
/**
* 用在IOS8,没有用到代理。跟方式2唯一不同的是:弹框的样式变为“UIAlertControllerStyleActionSheet”,
弹框出现在屏幕底部
*/
- (void)use3
{
UIAlertController *alertVc = [UIAlertController
alertControllerWithTitle:@"提示"
message:@"点击了头像"
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *cancle = [UIAlertAction
actionWithTitle:@"取消"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
NSLog(@"点击了取消");
}];
UIAlertAction *confirm = [UIAlertAction
actionWithTitle:@"确定"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
[alertVc addAction:cancle];
[alertVc addAction:confirm];
[self
presentViewController:alertVc
animated:YES
completion:^{
nil;
}];
}
#pragma mark 监听方式1中出现的弹框中的按钮点击,控制器来监听点击了取消还是确定按钮
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// 默认取消按钮索引为0
if (buttonIndex ==
0) NSLog(@"点击了取消按钮");
else
NSLog(@"点击了确定按钮");
}
/**
* 一般用在IOS8以前,用到了代理
*/
- (void)use1
{
// 1.创建一个中间弹框,有“取消”和“确定按钮”,设置代理为当前控制器
UIAlertView *alert = [[UIAlertView
alloc] initWithTitle:@"提示"
message:@"点击了图片按钮"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定",
nil];
// 2.显示在屏幕上
[alert show];
}
#pragma mark 方法2
/**
* 用在IOS8,没有用到代理
*/
- (void)use2
{
// 1.创建弹框控制器, UIAlertControllerStyleAlert这个样式代表弹框显示在屏幕中央
UIAlertController *alertVc = [UIAlertController
alertControllerWithTitle:@"提示"
message:@"点击了头像"
preferredStyle:UIAlertControllerStyleAlert];
// 2.添加取消按钮,block中存放点击了“取消”按钮要执行的操作
UIAlertAction *cancle = [UIAlertAction
actionWithTitle:@"取消"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
NSLog(@"点击了取消");
}];
UIAlertAction *confirm = [UIAlertAction
actionWithTitle:@"确定"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
// 3.将“取消”和“确定”按钮加入到弹框控制器中
[alertVc addAction:cancle];
[alertVc addAction:confirm];
// 4.控制器
展示弹框控件,完成时不做任何操作
[self
presentViewController:alertVc
animated:YES
completion:^{
nil;
}];
}
#pragma mark 方法3
/**
* 用在IOS8,没有用到代理。跟方式2唯一不同的是:弹框的样式变为“UIAlertControllerStyleActionSheet”,
弹框出现在屏幕底部
*/
- (void)use3
{
UIAlertController *alertVc = [UIAlertController
alertControllerWithTitle:@"提示"
message:@"点击了头像"
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *cancle = [UIAlertAction
actionWithTitle:@"取消"
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action) {
NSLog(@"点击了取消");
}];
UIAlertAction *confirm = [UIAlertAction
actionWithTitle:@"确定"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
[alertVc addAction:cancle];
[alertVc addAction:confirm];
[self
presentViewController:alertVc
animated:YES
completion:^{
nil;
}];
}
#pragma mark 监听方式1中出现的弹框中的按钮点击,控制器来监听点击了取消还是确定按钮
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// 默认取消按钮索引为0
if (buttonIndex ==
0) NSLog(@"点击了取消按钮");
else
NSLog(@"点击了确定按钮");
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- ios中图像进行压缩方法汇总
- IOS检测指定路径的文件是否存在
- iOS、Mac OS X系统中编程实现汉字转拼音的方法(超级简单)