zoukankan      html  css  js  c++  java
  • [Swift通天遁地]一、超级工具-(15)使用SCLAlertView制作强大的Alert警告窗口和Input编辑窗口

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10172013.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

    本文将演示如何知错一款可以采集用户数据的提示窗口。

    首先确保在项目中已经安装了所需的第三方库。

    1 platform :ios, '12.0'
    2 use_frameworks!
    3 
    4 target 'DemoApp' do
    5     source 'https://github.com/CocoaPods/Specs.git'
    6     pod 'SCLAlertView'
    7 end

    点击【Podfile】,查看安装配置文件。

    根据配置文件中的相关配置,安装第三方库

    然后点击打开【DemoApp.xcworkspace】项目文件。

    在项目导航区,打开视图控制器的代码文件【ViewController.swift】

      1 import UIKit
      2 //在当前的项目文件中,引入已经安装的第三方类库
      3 import SCLAlertView
      4 
      5 class ViewController: UIViewController {
      6 
      7     override func viewDidLoad() {
      8         super.viewDidLoad()
      9         // Do any additional setup after loading the view, typically from a nib.
     10         
     11         //初始化一个按钮,当用户点击该按钮时,弹出一个警告窗口
     12         let popup = UIButton(frame: CGRect(x: 0, y: 0,  320, height: 40))
     13         //将按钮控件放置在根视图的中心位置
     14         popup.center = self.view.center
     15         //设置按钮控件的背景颜色为橙色
     16         popup.backgroundColor = UIColor.orange
     17         //设置按钮控件在正常状态下的标题文字
     18         popup.setTitle("Popup", for: .normal)
     19         //给按钮控件绑定点击事件
     20         popup.addTarget(self, action: #selector(ViewController.popUp), for: .touchUpInside)
     21         
     22         //设置根视图的背景颜色为橙色
     23         self.view.backgroundColor = UIColor.orange
     24         //并将按钮添加到根视图中
     25         self.view.addSubview(popup)
     26     }
     27 
     28     //添加一个方法,用来响应按钮的点击事件
     29     func popUp()
     30     {
     31         //1.初始化一个信息类型的弹出窗口,
     32         //并设置弹出窗口的标题和子标题。
     33         SCLAlertView().showInfo("Important info", subTitle: "You are great")
     34         
     35         //2.对代码进行一些修改
     36         //初始化一个成功类型的弹出窗口,并设置弹出窗口的标题和子标题。
     37         let alertViewResponder: SCLAlertViewResponder = SCLAlertView().showSuccess("Hello World", 
     38                                                         subTitle: "This is a more descriptive text.")
     39         //可以通过弹出窗口的设置标题方法,重新设置窗口的标题文字。
     40         alertViewResponder.setTitle("New Title")
     41         //可以通过弹出窗口的设置子标题方法,重新设置窗口的子标题文字。
     42         alertViewResponder.setSubTitle("New description")*/
     43         
     44         //3.对代码进行一些修改
     45         //弹出窗口包含多种样式。
     46         //错误类型的弹出窗口,并设置弹出窗口的标题和子标题。
     47         SCLAlertView().showError("Hello Error", subTitle: "This is a more descriptive error text.")
     48         //通知类型的弹出窗口,并设置弹出窗口的标题和子标题。
     49         SCLAlertView().showNotice("Hello Notice", subTitle: "This is a more descriptive notice text.")
     50         //警告类型的弹出窗口,并设置弹出窗口的标题和子标题。
     51         SCLAlertView().showWarning("Hello Warning", subTitle: "This is a more descriptive warning text.")
     52         //信息类型的弹出窗口,并设置弹出窗口的标题和子标题。
     53         SCLAlertView().showInfo("Hello Info", subTitle: "This is a more descriptive info text.")
     54         //编辑类型的弹出窗口,并设置弹出窗口的标题和子标题。
     55         SCLAlertView().showEdit("Hello Edit", subTitle: "This is a more descriptive info text.")
     56         
     57 
     58         //4.对代码进行一些修改
     59         //对弹出窗口的视觉样式进行了修改
     60         SCLAlertView().showTitle(
     61             "Congratulations",//标题
     62             subTitle: "Operation successfully completed.",//子标题
     63             duration: 2.0,//持续时长
     64             completeText: "Done",//完成提示文字
     65             style: .success,//主题样式
     66             colorStyle: 0xA429FF,//窗口颜色
     67             colorTextButton: 0xFFFFFF//按钮文字的颜色
     68         )
     69 
     70         //5.对代码进行一些修改
     71         //也可以初始化一个外观样式类的对象,从而进行窗口样式的设置
     72         let appearance = SCLAlertView.SCLAppearance(
     73             //标题字体
     74             kTitleFont: UIFont(name: "HelveticaNeue", size: 20)!,
     75             //内容文字字体
     76             kTextFont: UIFont(name: "HelveticaNeue", size: 14)!,
     77             //按钮字体
     78             kButtonFont: UIFont(name: "HelveticaNeue-Bold", size: 14)!,
     79             //设置不允许关闭按钮的显示
     80             showCloseButton: false
     81         )
     82         
     83         //根据上文的外观样式对象,初始化一个指定外观样式的弹出窗口。
     84         let alert = SCLAlertView(appearance: appearance)
     85         //调用窗口显示的通知方法,创建一个通知类型的弹出窗口。
     86         alert.showNotice("Hello Notice", subTitle: "This is a more descriptive notice text.")
     87 
     88         //6.对代码进行一些修改
     89         //初始化一个警告窗口
     90         let alertView = SCLAlertView()
     91         //在窗口中添加第一个按钮控件,并给按钮绑定点击事件
     92         alertView.addButton("First Button", target:self, selector:Selector("firstButton"))
     93          //在窗口中添加第二个按钮控件,并给按钮添加一个闭包语句,以响应按钮的点击事件
     94         alertView.addButton("Second Button")
     95         {
     96             print("Second button tapped")
     97         }
     98         //调用窗口的显示成功方法,创建一个成功类型的弹出窗口
     99         alertView.showSuccess("Button View", subTitle: "This alert view has buttons")
    100 
    101         //7.对代码进行一些修改,创建一个自动隐藏的弹出窗口
    102         //初始化一个外观样式常量
    103         let appearance = SCLAlertView.SCLAppearance(
    104             //并设置在窗口中不显示关闭按钮
    105             showCloseButton: false
    106         )
    107         //根据外观样式,创建一个弹出窗口对象
    108         let alertView = SCLAlertView(appearance: appearance)
    109         //调用窗口的显示警告方法,打开一个警告类型的弹出窗口,并设置在显示三秒之后自动关闭弹出窗口
    110         alertView.showWarning("No button", 
    111                               subTitle: "Just wait for 3 seconds and I will disappear",
    112                               duration: 3)
    113         //初始化一个外观样式常量
    114         let appearance = SCLAlertView.SCLAppearance(
    115             //设置在窗口中显示圆形图标
    116             showCircularIcon: true
    117         )
    118         //根据外观样式,创建一个弹出窗口对象
    119         let alertView = SCLAlertView(appearance: appearance)
    120         //从项目中读取一张图片素材
    121         let alertViewIcon = UIImage(named: "Hearts")
    122         //调用窗口的显示信息方法,打开一个信息类型的弹出窗口,并设置窗口顶部的圆形图标
    123         alertView.showInfo("Custom icon",
    124                               subTitle: "This is a nice alert with a custom icon you choose",
    125                               circleIconImage: alertViewIcon)
    126 
    127         //8.对代码进行一些修改,创建一个文本输入框的弹出窗口  
    128         //初始化一个新的弹出窗口对象
    129         let alert = SCLAlertView()
    130         //往弹出窗口中,添加一个文本框,并设置文本框的占位文字
    131         let txt = alert.addTextField("Enter your name")
    132         //往弹出窗口中添加一个按钮,后跟一个闭包语句。
    133         alert.addButton("Show Name") {
    134             //当点击该按钮时,在控制台输出用户在文本框中输入的内容。
    135             print("Text value: (txt.text)")
    136         }
    137         //调用窗口的编辑方法,打开一个编辑类型的弹出窗口
    138         alert.showEdit("Edit View", subTitle: "This alert view shows a text box")
    139         
    140         //9.对代码进行一些修改,创建一个包含自定义视图的弹出窗口
    141         //初始化一个新的弹出窗口对象
    142         let alert = SCLAlertView()
    143         
    144         //创建一个指定显示区域的普通视图
    145         let subview = UIView(frame: CGRect(x: 0, y: 0,  216, height: 70))
    146         //然后根据视图的宽度,计算即将添加的文本框的水平位置
    147         let x = (subview.frame.width - 180) / 2
    148         
    149         //初始化一个文本框,并将文本框放置在视图的中心位置
    150         let textfield1 = UITextField(frame: CGRect(x: x, y: 10,  180, height: 25))
    151         //设置文本框边缘的颜色
    152         textfield1.layer.borderColor = UIColor.green.cgColor
    153         //设置文本框边缘的宽度
    154         textfield1.layer.borderWidth = 1.5
    155         //设置文本框的圆角半径
    156         textfield1.layer.cornerRadius = 5
    157         //设置文本框的占位文字
    158         textfield1.placeholder = "Username"
    159         //设置文本框的文字对齐方式
    160         textfield1.textAlignment = NSTextAlignment.center
    161         //将文本框添加到视图中
    162         subview.addSubview(textfield1)
    163         
    164         //使用相同的方式创建第二个文本框
    165         let textfield2 = UITextField(frame: CGRect(x: x, y: textfield1.frame.maxY,  180, height: 25))
    166         //设置文本框是否为密文的显示方式
    167         textfield2.isSecureTextEntry = true
    168         //设置文本框边缘的颜色
    169         textfield2.layer.borderColor = UIColor.blue.cgColor
    170         //设置文本框边缘的宽度
    171         textfield2.layer.borderWidth = 1.5
    172         //设置文本框的圆角半径
    173         textfield2.layer.cornerRadius = 5
    174         //设置文本框的占位文字
    175         textfield2.placeholder = "Password"
    176         //设置文本框的文字对齐方式
    177         textfield2.textAlignment = NSTextAlignment.center
    178         //将文本框添加到视图中
    179         subview.addSubview(textfield2)
    180         
    181         //设置弹出窗口的自定义子视图属性
    182         alert.customSubview = subview
    183         //给弹出窗口设置一个交互按钮
    184         alert.addButton("Login")
    185         {
    186             //并设置按钮被点击后的动作
    187             print("Logged in")
    188         }
    189         
    190         //添加一个交互按钮
    191         alert.addButton("Duration Button", //文本内容
    192                         backgroundColor: UIColor.brown, //背景颜色
    193                         textColor: UIColor.yellow, //文字颜色
    194                         showDurationStatus: true)//按钮的计时状态属性为真,时间到后自动关闭窗口
    195         {
    196             print("Duration Button tapped")
    197         }
    198         
    199         //调用窗口的显示信息方法,打开一个信息类型的弹出窗口
    200         alert.showInfo("Login", subTitle: "", duration: 5)
    201     }
    202     
    203     override func didReceiveMemoryWarning() {
    204         super.didReceiveMemoryWarning()
    205         // Dispose of any resources that can be recreated.
    206     }
    207 }
  • 相关阅读:
    使用Quartz2D实现时钟动画(二)
    使用Quartz2D实现时钟动画(一)
    排序算法的基本思想和OC代码实现
    OC命名规范及代码注释规范
    OC中Foundation框架的基本对象之数字对象
    iOS并排按钮点击联动效果封装
    iOS图片处理
    个人面试总结
    Objective和Swift,你该选择哪个
    网络开发中socket简介
  • 原文地址:https://www.cnblogs.com/strengthen/p/10172013.html
Copyright © 2011-2022 走看看