Swift使用表格组件实现单列表

这篇文章主要为大家详细介绍了Swift使用表格组件实现单列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Swift使用表格组件实现单列表的具体代码,供大家参考,具体内容如下

1、样例说明:

(1)列表内容从Controls.plist文件中读取,类型为Array 。
(2)点击列表项会弹出消息框显示该项信息。
(3)按住列表项向左滑动,会出现删除按钮。点击删除即可删除该项。

2、效果图

3、单元格复用机制

由于普通的表格视图中对的单元格形式一般都是相同的,所以本例采用了单元格复用机制,可以大大提高程序性能。
实现方式是初始化创建  UITableView 实例时使用  registerClass(UITableViewCell.self, forCellReuseIdentifier: "SwiftCell") 创建一个可供重用的  UITableViewCell。并将其注册到UITableView,ID为 SwiftCell。
下次碰到形式(或结构)相同的单元就可以直接使用UITableView的dequeueReusableCellWithIdentifier 方法从UITableView中取出。

4、示例代码

--- 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()      } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是Swift使用表格组件实现单列表的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 其他教程