Thank create SCLAlertView to the people.
Thank this message.
SCLAlertView is OC write.
出自:https://github.com/dogo/SCLAlertView
基本介绍:
Success 对勾 绿色
Error, 错误 红色
Notice, 通知 手指 灰色
Warning, 警告 黄色
Info, 感叹号 蓝色
Edit, 编译 紫色
Waiting, 等待 紫色 (显示有点问题)
Question, 问题 灰色
Custom 自定义
// 背景状态
alert.backgroundType = .Blur;
/*
Shadow 背景不模糊
Blur 背景模糊
Transparent 背景不变
*/
// 出现样式
alert.showAnimationType = .FadeIn;
// 离开样式
alert.hideAnimationType = .SlideOutToRight;
/*
FadeIn, 淡淡出现
SlideInFromBottom, 从下面弹出
SlideInFromTop, 从上面弹出
SlideInFromLeft, 左
SlideInFromRight, 右
SlideInFromCenter, 从中间弹出 大 -> 小
SlideInToCenter, 从中间弹出 小 -> 大
SimplyAppear 直接出现 生硬
*/
duration参数传0.表示弹框持续时间无限.
let alert = SCLAlertView(newWindow: ()); 这个方法创建出来的不需要传控制器
title显示长度只有一行,
subtitle自动换行
// 点击默认按钮调用block
alert .alertIsDismissed {
print("dismiss");
}
// 添加一个按钮 点击这个按钮调用block
alert.addButton("新增的按钮") {
}
情景零:按钮属性和主题颜色
设置二个按钮属性
修改主题颜色.
// 主题颜色
customViewColor = UIColor.init(red: 0.550, green: 0.723, blue: 1.000, alpha: 1.000);
代码下载:https://pan.baidu.com/s/1miEW8Og
情景一:手指灰色弹框
// MARK: 手指灰色弹框 一个按钮
private func test1() {
let alert = SCLAlertView();
alert.alertIsDismissed {
print("点击了默认按钮");
}
// 0 表示无限 时间
alert.showNotice(self, title: "title", subTitle: "subTitle", closeButtonTitle: "确定", duration: 0);
}
情景二:旋转紫色弹框
// MARK: 旋转动画弹框 默认从上往下
private func test2() {
let alert = SCLAlertView();
// 背景状态 不模糊
alert.backgroundType = .Shadow;
alert.showWaiting(self, title: "title", subTitle: "subTitle", closeButtonTitle: "确定", duration: 0);
}
注意:这里设置了背景状态为不模糊,请和上面对比.
情景三:黄色感叹号弹框
// MARK: 黄色感叹号弹框
private func test3() {
let alert = SCLAlertView();
// 背景状态 透明
alert.backgroundType = .Transparent;
// 感叹号 黄色
alert.showWarning(self, title: "title", subTitle: "subTitle", closeButtonTitle: "确定", duration: 0);
}
情景四:蓝色感叹号弹框
// MARK: 蓝色感叹号
private func test4() {
let alert = SCLAlertView();
alert .showInfo(self, title: "title", subTitle: "subTitle", closeButtonTitle: "确定", duration: 0);
}
情景五:紫色输入框
// MARK: 紫色输入框
private func test5() {
let alert = SCLAlertView();
let tempTextField = alert .addTextField("输入点什么");
// 增加一个按钮
alert.addButton("确定") {
// A
print("点击了确定,输入的是\(tempTextField.text)");
}
// 点击了默认按钮
alert .alertIsDismissed {
// B
print("点击了取消");
}
alert .showEdit(self, title: "title", subTitle: "subTitle", closeButtonTitle: "取消", duration: 0);
}
点击了确定会先调用A然后调用B
情景六:红色错误❌弹框
// MARK: 红色错误❌弹框
private func test6() {
let alert = SCLAlertView();
alert.showError(self, title: "title", subTitle: "这是一个错误的操作. Blah de blah de blah, blah. Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah. Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah.Blah de blah de blah, blah", closeButtonTitle: "OK", duration: 0);
}
情景七:灰色错误弹框
// MARK:
// MARK: 灰色错误❌弹框
private func test7() {
let alert = SCLAlertView();
alert.showQuestion(self, title: "Question?", subTitle: "answer", closeButtonTitle: "Dismiss", duration: 0);
}
情景八:倒计时数秒
// MARK: 添加倒计时 数秒
private func test8() {
let alert = SCLAlertView();
// 给哪个 索引 的按钮添加 倒计时数字
alert.addTimerToButtonIndex(0, reverse: true);
alert.showInfo(self, title: "codeIsMyGirl", subTitle: "倒计时开始~", closeButtonTitle: "剩余时间-->", duration: 3);
}
情景九:紫色输入弹框 (按钮横向排列)
// MARK: 紫色输入弹框 (按钮横向排列)
private func test9() {
let alert = SCLAlertView();
// 按钮横向排列
alert.horizontalButtons = true;
let tempTextField = alert.addTextField("请输入点什么~");
alert.addButton("show") {
print("value->\(tempTextField.text)");
}
alert.alertIsDismissed {
print("点击了默认按钮");
}
alert.showEdit(self, title: "title", subTitle: "subTitle", closeButtonTitle: "取消", duration: 0);
}
情景十:自定义
// MARK: 自定义
private func test10() {
let alert = SCLAlertView();
let colorXN = UIColor.init(red: 0.251, green: 0.345, blue: 0.439, alpha: 1);
//[UIColor colorWithRed:0.251 green:0.345 blue:0.439 alpha:1.000];
let imageXN = UIImage.init(named: "i");
// 自定义图片 和 颜色 (按钮颜色是白色的)
alert.showCustom(self, image: imageXN, color: colorXN, title: "Custom", subTitle: "添加一个自定义图标和颜色为您自己的类型的警报!", closeButtonTitle: "确定", duration: 0);
}
情景十一:综合 (设置默认按钮属性)
// MARK: 综合
private func test11() {
let alert = SCLAlertView();
// 水平 显示按钮
alert.horizontalButtons = true;
// 颜色
// alert.backgroundViewColor = UIColor.init(red: 1.000, green: 0.744, blue: 0.434, alpha: 1.000);
//[UIColor colorWithRed:1.000 green:0.744 blue:0.434 alpha:1.000];
// title 文字 和大小
alert.setTitleFontFamily("Superclarendon", withSize: 20);
// 占位符 字体 和大小
alert.setBodyTextFontFamily("TrebuchetMS", withSize: 14);
// 按钮 字体 和大小
alert.setButtonsTextFontFamily("Baskerville", withSize: 14);
alert.addButton("第一", target: self, selector: "firstButton");
alert.addButton("第二") {
print("secound button tapped");
}
let textFieldXN = alert.addTextField("输入点什么~");
alert.addButton("第三") {
print("value:\(textFieldXN.text)");
}
// 默认按钮属性设置
alert.completeButtonFormatBlock = { () in
let dictM = NSMutableDictionary();
// 默认按钮 的背景色
dictM["backgroundColor"] = UIColor.yellowColor();
// 边框 描边颜色
//dictM["borderColor"] = UIColor.blackColor();
// 边框 宽度
//dictM["borderWidth"] = 1;
// 字体颜色
dictM["textColor"] = UIColor.blackColor();
return dictM as [NSObject : AnyObject];
}
// alert.attributedFormatBlock = { (sender) -> NSAttributedString in
//
// let subTitle = NSMutableAttributedString(string: sender);
//
// return subTitle;
// }
alert.showTitle(self, title: "恭喜", subTitle:
"你是最棒的", style: .Success, closeButtonTitle: "最后", duration: 0);
/*
Success 对勾 绿色
Error, 错误 红色
Notice, 通知 手指 灰色
Warning, 警告 黄色
Info, 感叹号 蓝色
Edit, 编译 紫色
Waiting, 等待 紫色 (显示有点问题)
Question, 问题 灰色
Custom 自定义
*/
}
// MARK:
// MARK: 旋转等待弹框
@objc private func firstButton() {
}
alert.horizontalButtons = true; 设置按钮水平显示
情景十二:设置按钮属性
private func test12() {
let alert = SCLAlertView(newWindow: ());
let button = alert.addButton("1", target: self, selector: nil);
// 默认按钮属性设置
button.buttonFormatBlock = { () in
let dictM = NSMutableDictionary();
// 默认按钮 的背景色
dictM["backgroundColor"] = UIColor.whiteColor();
// 边框 描边颜色
dictM["borderColor"] = UIColor.yellowColor();
// 边框 宽度
dictM["borderWidth"] = 2;
// 字体颜色
dictM["textColor"] = UIColor.blackColor();
return dictM as [NSObject : AnyObject];
}
alert.addButton("2") {
print("点击了 按钮 2");
}
alert.showSuccess("title", subTitle: "subTitle", closeButtonTitle: "确定", duration: 0);
}
情景十三:二个textField
// MARK: 二个textField
private func test13() {
let alert = SCLAlertView();
alert.horizontalButtons = true;
let evenField = alert.addTextField("第一行占位符");
let oddField = alert.addTextField("第二行占位符");
alert.addButton("按钮一", validationBlock: { () -> Bool in
if evenField.text?.characters.count == 0 {
UIAlertView.init(title: "哎呦~", message: "你忘记输入了", delegate: nil, cancelButtonTitle: "OK").show();
//, otherButtonTitles: nil
// 辞去第一响应
evenField.becomeFirstResponder();
return false;
}
if oddField.text?.characters.count == 0 {
UIAlertView.init(title: "哎呦~", message: "你忘记输入了 第二个textField", delegate: nil, cancelButtonTitle: "OK").show();
//, otherButtonTitles: nil
// 辞去第一响应
oddField.becomeFirstResponder();
return false;
}
return true;
}) {
UIAlertView.init(title: "哎呦,不错", message: "干得漂亮", delegate: nil, cancelButtonTitle: "OK").show();
};
alert.showEdit(self, title: "验证", subTitle: "确保~", closeButtonTitle: "按钮二", duration: 0);
}
情景十四:自定义.图标使用"模具"
@objc private func clickFirstButton() {
}
// MARK: 二个textField
private func test15() {
let alert = SCLAlertView(newWindow: ());
alert.tintTopCircle = false;
alert.iconTintColor = UIColor.brownColor();
// 使用大图标
alert.useLargerIcon = true;
alert.cornerRadius = 13;
alert.addSwitchViewWithLabel("不在显示");
SCLSwitchView.appearance().tintColor = UIColor.brownColor();
let button = alert.addButton("确定", target: self, selector: "clickFirstButton");
button.buttonFormatBlock = { () in
let dictM = NSMutableDictionary();
// 圆角半径
dictM["cornerRadius"] = "17.5";
// 默认按钮 的背景色
// dictM["backgroundColor"] = UIColor.yellowColor();
//
// // 边框 描边颜色
// //dictM["borderColor"] = UIColor.blackColor();
//
// // 边框 宽度
// //dictM["borderWidth"] = 1;
//
// // 字体颜色
// dictM["textColor"] = UIColor.blackColor();
return dictM as [NSObject : AnyObject];
}
// 图片"模具"
let imageXN = UIImage.init(named: "switch")
let colorXN = UIColor.brownColor();
alert.showCustom(self, image: imageXN, color: colorXN, title: "title", subTitle: "subTitle", closeButtonTitle: nil, duration: 0);
}