zoukankan      html  css  js  c++  java
  • [Swift通天遁地]一、超级工具-(19)制作六种别具风格的动作表单

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

    目录:[Swift]通天遁地Swift

    本文将演示如何制作多种别具风格的动作表单。

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

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

     1 platform :ios, '12.0'
     2 use_frameworks!
     3 
     4 target 'DemoApp' do
     5     source 'https://github.com/CocoaPods/Specs.git'
     6     pod 'XLActionController'
     7     pod 'XLActionController/Periscope'
     8     pod 'XLActionController/Skype'
     9     pod 'XLActionController/Spotify'
    10     pod 'XLActionController/Tweetbot'
    11     pod 'XLActionController/Twitter'
    12     pod 'XLActionController/Youtube'
    13 end

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

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

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

    选择开始编写代码,创建动作表单。

      1 import UIKit
      2 //在当前类文件中,引入已经安装的第三方类库
      3 import XLActionController
      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 button = UIButton(frame: CGRect(x: 20, y: 200,  280, height: 40))
     13         //设置按钮的背景颜色为橙色
     14         button.backgroundColor = UIColor.orange
     15         //设置按钮在正常状态下的标题文字
     16         button.setTitle("Show me the XLActionController", for: .normal)
     17         //给按钮控件绑定点击事件,【分别绑定生成动作表单的六种方法】
     18         button.addTarget(self, 
     19                          action: #selector(ViewController.tweetbotActionController), 
     20                          for: .touchUpInside)
     21         //将按钮控件添加到当前的根视图
     22         self.view.addSubview(button)
     23         //设置根视图的背景颜色为橙色
     24         self.view.backgroundColor = UIColor.orange
     25     }
     26     
     27     //表单风格1,注意绑定按钮的点击事件
     28     //添加一个方法,用来响应按钮的点击事件
     29     @objc func tweetbotActionController()
     30     {
     31         //初始化一个指定风格的动作表单
     32         let actionController = TweetbotActionController()
     33         
     34         //1.在动作表单中添加一个表单选项,表单选项的样式为默认
     35         //动态表单消失之后,才执行相关的代码
     36         actionController.addAction(Action("View Details", 
     37                                    style: .default, //表单样式:默认样式
     38                                    handler: { action in
     39                     //当用户选择该选项时,在控制台输出一条日志信息
     40                     print("View Details")
     41         }))
     42         //2.在动作表单中添加一个表单选项,表单选项的样式为默认
     43         //动态表单消失之后,才执行相关的代码
     44         actionController.addAction(Action("View Retweets", 
     45                                    style: .default, //表单样式:默认样式
     46                                    handler: { action in
     47                     //当用户选择该选项时,在控制台输出一条日志信息
     48                     print("View Retweets")
     49         }))
     50         //3.在动作表单中添加一个表单选项,表单选项的样式为默认。
     51         //动态表单消失之后,才执行相关的代码
     52         actionController.addAction(Action("View in Favstar", 
     53                                    style: .default, 
     54                                    handler: { action in
     55                     //当用户选择该选项时,在控制台输出一条日志信息
     56                     print("View in Favstar")
     57         }))
     58 
     59         //4.在动作表单中添加一个表单选项,表单选项的样式为默认,
     60         //该选项被点击后将立即执行代码块中的语句。
     61         actionController.addAction(Action("Translate", 
     62                                           style: .default, 
     63                                           executeImmediatelyOnTouch: true, 
     64                                           handler: { action in
     65                                           //当用户选择该选项时,在控制台输出一条日志信息
     66                                           print("View Translate")
     67         }))
     68         
     69         //在动作表单中添加另一个段落
     70         actionController.addSection(Section())
     71         //并在该段落中,添加一个用于关闭窗口的取消样式的按钮
     72         actionController.addAction(Action("Cancel", style: .cancel, handler:nil))
     73         
     74         //在当前的视图控制器中,通过模态的方式弹出动作表单
     75         present(actionController, animated: true, completion: nil)
     76     }
     77     
     78     //表单风格2,注意绑定按钮的点击事件
     79     //添加一个方法,用来创建第二种样式的动作表单
     80     @objc func twitterActionController()
     81     {
     82         //初始化一个动作表单控制器对象
     83         let actionSheet = TwitterActionController()
     84         //设置表单头部的文字内容
     85         actionSheet.headerData = "Accounts"
     86 
     87         //在动作表单中添加一个表单选项,表单选项的样式为默认,设置相关参数。
     88         actionSheet.addAction(Action(ActionData(title: "Xmartlabs", //标题
     89                                                 subtitle: "@xmartlabs",//子标题
     90                                                 image: UIImage(named: "tw-xmartlabs")!), //左侧图标
     91                                                 style: .default, //表单样式:默认样式
     92                                                 handler: { action in    //交互动作
     93                                                            print("@xmartlabs")
     94         }))
     95         //在动作表单中添加一个表单选项,表单选项的样式为默认,设置相关参数。
     96         actionSheet.addAction(Action(ActionData(title: "Miguel", //标题
     97                                                 subtitle: "@remer88",//子标题
     98                                                 image: UIImage(named: "tw-remer")!), //左侧图标
     99                                                 style: .default,//表单样式:默认样式
    100                                                 handler: { action in    //交互动作
    101                                                            print("@remer88")
    102         }))
    103         
    104         //在当前的视图控制器中,通过模态的方式弹出动作表单
    105         present(actionSheet, animated: true, completion: nil)
    106     }
    107     
    108     //表单风格3,注意绑定按钮的点击事件
    109     //添加一个方法,用来创建第三种样式的动作表单
    110     @objc func youtubeActionController()
    111     {
    112         //初始化一个动作表单控制器对象
    113         let actionController = YoutubeActionController()
    114         
    115         //在动作表单中添加一个表单选项,表单选项的样式为默认,设置相关参数。
    116         actionController.addAction(Action(ActionData(title: "Add to Watch Later",//标题
    117                                                      image: UIImage(named: "yt-add-to-watch-later-icon")!), //左侧图标
    118                                                      style: .default, //表单样式:默认样式
    119                                                      handler: { action in
    120         }))
    121         //在动作表单中添加一个表单选项,表单选项的样式为默认,设置相关参数。
    122         actionController.addAction(Action(ActionData(title: "Add to Playlist...", //标题
    123                                                      image: UIImage(named: "yt-add-to-playlist-icon")!), //左侧图标
    124                                                      style: .default,//表单样式:默认样式
    125                                                      handler: { action in  //交互动作
    126         }))
    127         //在动作表单中添加一个表单选项,表单选项的样式为默认,设置相关参数。
    128         actionController.addAction(Action(ActionData(title: "Share...", //标题
    129                                                      image: UIImage(named: "yt-share-icon")!), //左侧图标
    130                                                      style: .default, //表单样式:默认样式
    131                                                      handler: { action in  //交互动作
    132         }))
    133         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    134         actionController.addAction(Action(ActionData(title: "Cancel", //标题
    135                                                      image: UIImage(named: "yt-cancel-icon")!), //左侧图标
    136                                                      style: .cancel, //表单样式:取消样式
    137                                                      handler: nil))  //交互动作
    138 
    139         //在当前的视图控制器中,通过模态的方式弹出动作表单
    140         present(actionController, animated: true, completion: nil)
    141     }
    142     
    143     //表单风格4,注意绑定按钮的点击事件
    144     //添加一个方法,用来创建第四种样式的动作表单
    145     @objc func periscopeActionController()
    146     {
    147         //初始化一个动作表单控制器对象
    148         let actionController = PeriscopeActionController()
    149         //设置表单头部的文字内容
    150         actionController.headerData = "Are you sure you want to block?"
    151         //在动作表单中添加一个表单选项,表单选项的样式为破坏样式,设置相关参数。
    152         actionController.addAction(Action("Block user",  //标题
    153                                           style: .destructive, 
    154                                           handler: { action in  //交互动作
    155         }))
    156         
    157         //在动作表单中,添加另一个具有相同风格的段落
    158         actionController.addSection(PeriscopeSection())
    159         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    160         actionController.addAction(Action("Cancel",  //标题
    161                                           style: .cancel, 
    162                                           handler: { action in   //交互动作
    163         }))
    164         
    165         //在当前的视图控制器中,通过模态的方式弹出动作表单
    166         present(actionController, animated: true, completion: nil)
    167     }
    168     
    169     //表单风格5,注意绑定按钮的点击事件
    170     //添加一个方法,用来创建第五种样式的动作表单
    171     @objc func spotifyActionController()
    172     {
    173         //初始化一个动作表单控制器对象
    174         let actionController = SpotifyActionController()
    175         
    176         //设置表单头部的文字内容,其包含:标题、子标题、图标。
    177         actionController.headerData = SpotifyHeaderData(title: "The Fast And The Furious Soundtrack Collection", //标题
    178                                                         subtitle: "Various Artists", //子标题
    179                                                         image: UIImage(named: "sp-header-icon")!) //图标
    180         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    181         actionController.addAction(Action(ActionData(title: "Save Full Album", //标题
    182                                                      image: UIImage(named: "sp-add-icon")!),//左侧图标
    183                                                      style: .default, //表单样式:默认样式
    184                                                      handler: { action in })) //交互动作
    185 
    186         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    187         actionController.addAction(Action(ActionData(title: "Remove", //标题
    188                                                      image: UIImage(named: "sp-remove-icon")!), //左侧图标
    189                                                      style: .default, //表单样式:默认样式
    190                                                      handler: { action in })) //交互动作
    191 
    192         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    193         actionController.addAction(Action(ActionData(title: "Share", //标题
    194                                                      image: UIImage(named: "sp-share-icon")!), //左侧图标
    195                                                      style: .default, //表单样式:默认样式
    196                                                      handler: { action in })) //交互动作
    197 
    198         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    199         actionController.addAction(Action(ActionData(title: "Go to Album", //标题
    200                                                      image: UIImage(named: "sp-view-album-icon")!),//左侧图标
    201                                                      style: .default, //表单样式:默认样式
    202                                                      handler: { action in })) //交互动作
    203         
    204         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    205         actionController.addAction(Action(ActionData(title: "Start radio",//标题
    206                                                      image: UIImage(named: "sp-radio-icon")!), //左侧图标
    207                                                      style: .default, //表单样式:默认样式
    208                                                      handler: { action in })) //交互动作
    209         
    210         //在当前的视图控制器中,通过模态的方式弹出动作表单
    211         present(actionController, animated: true, completion: nil)
    212     }
    213     
    214     //表单风格6,注意绑定按钮的点击事件
    215     //添加一个方法,用来创建第六种样式的动作表单
    216     @objc func skypeActionController()
    217     {
    218         //初始化一个动作表单控制器对象
    219         let actionController = SkypeActionController()
    220 
    221          //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    222         actionController.addAction(Action("Take photo", //标题
    223                                            style: .default, //表单样式:默认样式
    224                                            handler: { action in})) //交互动作
    225 
    226         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    227         actionController.addAction(Action("Choose existing photo", //标题
    228                                            style: .default, //表单样式:默认样式
    229                                            handler: { action in})) //交互动作
    230 
    231          //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    232         actionController.addAction(Action("Remove profile picture", //标题
    233                                            style: .default,//表单样式:默认样式
    234                                            handler: { action in})) //交互动作
    235 
    236         //在动作表单中添加一个表单选项,表单选项的样式为取消样式,设置相关参数。
    237         actionController.addAction(Action("Cancel", //标题
    238                                            style: .cancel, //表单样式:取消样式
    239                                            handler: nil)) //交互动作
    240         
    241         //在当前的视图控制器中,通过模态的方式弹出动作表单
    242         present(actionController, animated: true, completion: nil)
    243     }
    244     
    245     override func didReceiveMemoryWarning() {
    246         super.didReceiveMemoryWarning()
    247         // Dispose of any resources that can be recreated.
    248     }
    249 }
  • 相关阅读:
    Sonar代码分析实战(2)——1.1.1 Sonar安装环境要求
    无法在Mac Os下通过Gem安装Mysql
    HBase replication 代码分析
    ThinkPHP报js错误:Uncaught ReferenceError: out is not defined
    在Linux用tar归档压缩文件时忽略某些文件和目录
    mysql errno: 150 错误 外键
    2012年最经典的HyperV精品文章60篇
    三届(2012、2011、2009)KDD Cup内容、数据源和论文
    CVS安装及用户配置
    flex>MXML语法 小强斋
  • 原文地址:https://www.cnblogs.com/strengthen/p/10176451.html
Copyright © 2011-2022 走看看