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

 更新时间:2022年01月27日 09:19:36   作者:hangge  
这篇文章主要为大家详细介绍了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()
     }
}

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

相关文章

  • iOS Swift UICollectionView横向分页滚动,cell左右排版问题详解

    iOS Swift UICollectionView横向分页滚动,cell左右排版问题详解

    UICollectionView是iOS中比较常见的一个控件,这篇文章主要给大家介绍了关于iOS Swift UICollectionView横向分页滚动,cell左右排版问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随小编来一起学习学习吧。
    2017-12-12
  • Swift 中 Opaque Types学习指南

    Swift 中 Opaque Types学习指南

    这篇文章主要为大家介绍了Swift 中 Opaque Types学习指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • swift中的@UIApplicationMain示例详解

    swift中的@UIApplicationMain示例详解

    这篇文章主要给大家介绍了关于swift中@UIApplicationMain的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • 简单了解Swift语言中的break和continue语句的用法

    简单了解Swift语言中的break和continue语句的用法

    这篇文章主要简单介绍了Swift语言中的break和continue语句的用法,与其他语言的一样用于循环语句流程控制,需要的朋友可以参考下
    2015-11-11
  • Swift中循环语句中的转移语句 break 和 continue

    Swift中循环语句中的转移语句 break 和 continue

    这篇文章主要介绍了Swift中循环语句中的转移语句 break 和 continue,本文通过实例代码给大家介绍的非常详细,需要的的朋友参考下
    2016-12-12
  • Swift实现“或”操作符的3种方法示例

    Swift实现“或”操作符的3种方法示例

    这篇文章主要给大家介绍了关于Swift实现“或”操作符的3种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Swift3.0剪切板代码拷贝及跨应用粘贴实现代码

    Swift3.0剪切板代码拷贝及跨应用粘贴实现代码

    这篇文章主要为大家详细介绍了Swift3.0剪切板代码拷贝及跨应用粘贴的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Swift实现监听键盘通知及一些处理详解

    Swift实现监听键盘通知及一些处理详解

    这篇文章主要给大家介绍了关于Swift实现监听键盘通知及一些处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • Swift中排序算法的简单取舍详解

    Swift中排序算法的简单取舍详解

    对于排序算法, 通常简单的, 为大家所熟知的有, 选择排序, 冒泡排序, 快速排序, 当然还有哈希, 桶排序之类的, 本文仅比较最为常见的选择, 冒泡和快排,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-03-03
  • swift表格控件使用方法详解(UITableview)

    swift表格控件使用方法详解(UITableview)

    这篇文章主要为大家详细介绍了swift表格控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论