您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Swift如何使用表格組件實現單列表,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
(1)列表內容從Controls.plist文件中讀取,類型為Array 。
(2)點擊列表項會彈出消息框顯示該項信息。
(3)按住列表項向左滑動,會出現刪除按鈕。點擊刪除即可刪除該項。
由于普通的表格視圖中對的單元格形式一般都是相同的,所以本例采用了單元格復用機制,可以大大提高程序性能。
實現方式是初始化創建 UITableView 實例時使用 registerClass(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell") 創建一個可供重用的 UITableViewCell。并將其注冊到UITableView,ID為 SwiftCell。
下次碰到形式(或結構)相同的單元就可以直接使用UITableView的dequeueReusableCellWithIdentifier 方法從UITableView中取出。
--- ViewController.swift ---
import UIKit class ViewController : UIViewController , UITableViewDelegate , UITableViewDataSource { var ctrlnames:[ String ]? var tableView: UITableView ? override func loadView() { super .loadView() } override func viewDidLoad() { super .viewDidLoad() //初始化數據,這一次數據,我們放在屬性列表文件里 self .ctrlnames = NSArray (contentsOfFile: NSBundle .mainBundle().pathForResource( "Controls" , ofType: "plist" )!) as ? Array print ( self .ctrlnames) //創建表視圖 self .tableView = UITableView (frame: self .view.frame, style: UITableViewStyle . Plain ) self .tableView!.delegate = self self .tableView!.dataSource = self //創建一個重用的單元格 self .tableView!.registerClass( UITableViewCell . self , forCellReuseIdentifier: "SwiftCell" ) self .view.addSubview( self .tableView!) //創建表頭標簽 let headerLabel = UILabel (frame: CGRectMake (0, 0, self .view.bounds.size.width, 30)) headerLabel.backgroundColor = UIColor .blackColor() headerLabel.textColor = UIColor .whiteColor() headerLabel.numberOfLines = 0 headerLabel.lineBreakMode = NSLineBreakMode . ByWordWrapping headerLabel.text = "常見 UIKit 控件" headerLabel.font = UIFont .italicSystemFontOfSize(20) self .tableView!.tableHeaderView = headerLabel } //在本例中,只有一個分區 func numberOfSectionsInTableView(tableView: UITableView ) -> Int { return 1; } //返回表格行數(也就是返回控件數) func tableView(tableView: UITableView , numberOfRowsInSection section: Int ) -> Int { return self .ctrlnames!.count } //創建各單元顯示內容(創建參數indexPath指定的單元) func tableView(tableView: UITableView , cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell { //為了提供表格顯示性能,已創建完成的單元需重復使用 let identify: String = "SwiftCell" //同一形式的單元格重復使用,在聲明時已注冊 let cell = tableView.dequeueReusableCellWithIdentifier(identify, forIndexPath: indexPath) as UITableViewCell cell.accessoryType = UITableViewCellAccessoryType . DisclosureIndicator cell.textLabel?.text = self .ctrlnames![indexPath.row] return cell } // UITableViewDelegate 方法,處理列表項的選中事件 func tableView(tableView: UITableView , didSelectRowAtIndexPath indexPath: NSIndexPath ) { self .tableView!.deselectRowAtIndexPath(indexPath, animated: true ) let itemString = self .ctrlnames![indexPath.row] let alertController = UIAlertController (title: "提示!" , message: "你選中了【\(itemString)】" , preferredStyle: . Alert ) let okAction = UIAlertAction (title: "確定" , style: . Default ,handler: nil ) alertController.addAction(okAction) self .presentViewController(alertController, animated: true , completion: nil ) } //滑動刪除必須實現的方法 func tableView(tableView: UITableView , commitEditingStyle editingStyle: UITableViewCellEditingStyle , forRowAtIndexPath indexPath: NSIndexPath ) { print ( "刪除\(indexPath.row)" ) let index = indexPath.row self .ctrlnames?.removeAtIndex(index) self .tableView?.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation . Top ) } //滑動刪除 func tableView(tableView: UITableView , editingStyleForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCellEditingStyle { return UITableViewCellEditingStyle . Delete } //修改刪除按鈕的文字 func tableView(tableView: UITableView , titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath ) -> String ? { return "刪" } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } }
以上就是Swift如何使用表格組件實現單列表,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。