[Swift通天遁地]1、超級工具-(19)製做六種別具風格的動做表單

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-nnwxxgju-hz.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftios

本文將演示如何製做多種別具風格的動做表單。git

首先確保在項目中已經安裝了所需的第三方庫。github

點擊【Podfile】,查看安裝配置文件。swift

 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】項目文件。ide

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】工具

選擇開始編寫代碼,建立動做表單。post

  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, width: 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 }
相關文章
相關標籤/搜索