★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(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 }