https://blog.csdn.net/u010057914/article/details/83027646
开发过程中常会遇到弹框,来与用户交互,下面是对UIAlertController的小小总结:
一、UIAlertController有两种样式
普通弹框 和 ActionSheet
二、创建弹框
1.普通弹框Alert的常用方法:
//
// ViewController.m
// UIAlertController之AlertView系统警告器
//
// Created by Liu,Wenbo(TBRD) on 2020/5/29.
// Copyright © 2020 Liu,Wenbo(TBRD). All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
//点击出发该函数
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
// preferredStyle : UIAlertControllerStyleAlert 警告框
UIAlertController *alercontroller = [UIAlertController alertControllerWithTitle:@"标题" message:@"警告框的信息" preferredStyle:UIAlertControllerStyleAlert];
/*
参数说明:
Title:弹框的标题
message:弹框的消息内容
preferredStyle:弹框样式:UIAlertControllerStyleAlert
*/
// 添加按钮动作 确认按钮
UIAlertAction *conform = [UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action){
NSLog(@"点击了确认");
}];
//取消按钮
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击了取消");
}];
//还可以添加文本框 且可以通过alercontroller.textFields.firstObject获得该文本框
[alercontroller addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @"请填写您的反馈信息";
textField.backgroundColor = [UIColor greenColor];
}];
//将动作按钮 添加到控制器中
[alercontroller addAction:conform];
[alercontroller addAction:cancel];
//显示弹框
[self presentViewController:alercontroller animated:YES completion:nil];
}
@end
效果图如下:
2.ActionSheet-提示列表(抽屉控件)
//
// ViewController.m
// UIAlertControler之ActionSheet抽屉控件
//
// Created by Liu,Wenbo(TBRD) on 2020/5/29.
// Copyright © 2020 Liu,Wenbo(TBRD). All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
//点击屏幕触发该方法
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//ActionSheet-提示列表(抽屉控件)
UIAlertController *alertsheet = [UIAlertController alertControllerWithTitle:@"标题" message:@"这是一些信息" preferredStyle:UIAlertControllerStyleActionSheet];
/*
参数说明:
Title:弹框的标题
message:弹框的消息内容
preferredStyle:弹框样式:UIAlertControllerStyleActionSheet
*/
//添加按钮动作1
UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"项目1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击了项目1");
}];
//添加按钮动作2
UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"项目2" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击了项目2");
}];
//添加取消按钮
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"取消");
}];
//添加动作
[alertsheet addAction:action1];
[alertsheet addAction:action2];
[alertsheet addAction:cancel];
//显示sheet
[self presentViewController:alertsheet animated:YES completion:nil];
}
@end
效果图: