Swift - 使用表格组件(UITableView)实现单列表

Swift - 使用表格组件(UITableView)实现单列表,第1张

概述1,样例说明: (1)列表内容从Controls.plist文件中读取,类型为Array。 (2)点击列表项会d出消息框显示该项信息。 (3)按住列表项向左滑动,会出现删除按钮。点击删除即可删除该项。 2,效果图          3,单元格复用机制: 由于普通的表格视图中对的单元格形式一般都是相同的,所以本例采用了单元格复用机制,可以大大提高程序性能。 实现方式是初始化创建UITableView 1,样例说明: (1)列表内容从Controls.pList文件中读取,类型为Array。 (2)点击列表项会d出消息框显示该项信息。 (3)按住列表项向左滑动,会出现删除按钮。点击删除即可删除该项。
2,效果图

3,单元格复用机制:
由于普通的表格视图中对的单元格形式一般都是相同的,所以本例采用了单元格复用机制,可以大大提高程序性能。 实现方式是初始化创建UItableVIEw实例时使用registerClass(UItableVIEwCell.self,forCellReuseIDentifIEr: "SwiftCell")创建一个可供重用的UItableVIEwCell。并将其注册到UItableVIEw,ID为SwiftCell。下次碰到形式(或结构)相同的单元就可以直接使用UItableVIEw的dequeueReusableCellWithIDentifIEr方法从UItableVIEw中取出。
4,示例代码 ---VIEwController.swift ---
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 import UIKit class VIEwController : UIVIEwController , UItableVIEwDelegate UItableVIEwDataSource { var ctrlnames:[ String ]? tableVIEw: UItableVIEw ? overrIDe func loadVIEw() { super .loadVIEw() } @H_404_344@vIEwDIDLoad() { .vIEwDIDLoad() //初始化数据,这一次数据,我们放在属性列表文件里 self .ctrlnames = NSArray (contentsOffile: NSBundle .mainBundle().pathForResource( "Controls" "pList" )!) as ? Array print ( .ctrlnames) //创建表视图 .tableVIEw = UItableVIEw (frame: .vIEw.frame,style: UItableVIEwStyle . Plain ) .tableVIEw!.delegate = self .tableVIEw!.dataSource = self //创建一个重用的单元格 .tableVIEw!.registerClass( UItableVIEwCell . "SwiftCell" ) .vIEw.addSubvIEw( .tableVIEw!) //创建表头标签 let headerLabel = UILabel (frame: CGRectMake (0, .vIEw.bounds.size.wIDth,30)) headerLabel.backgroundcolor = UIcolor .blackcolor() headerLabel.textcolor = .whitecolor() headerLabel.numberOflines = 0 headerLabel.lineBreakMode = NSlineBreakMode ByWorDWrapPing headerLabel.text = "常见 UIKit 控件" headerLabel.@R_419_6837@ = UI@R_419_6837@ .italicSystem@R_419_6837@OfSize(20) .tableVIEw!.tableheaderVIEw = headerLabel } //在本例中,只有一个分区 numberOfSectionsIntableVIEw(tableVIEw: ) -> Int { return 1; } //返回表格行数(也就是返回控件数) tableVIEw(tableVIEw: { return .ctrlnames!.count } //创建各单元显示内容(创建参数indexPath指定的单元) tableVIEw(tableVIEw: NSIndexPath ) -> UItableVIEwCell { //为了提供表格显示性能,已创建完成的单元需重复使用 IDentify: = "SwiftCell" //同一形式的单元格重复使用,在声明时已注册 cell = tableVIEw.dequeueReusableCellWithIDentifIEr(IDentify,forIndexPath: indexPath) as UItableVIEwCell cell.accessoryType = UItableVIEwCellAccessoryType disclosureIndicator cell.textLabel?.text = .ctrlnames![indexPath.row] cell } // UItableVIEwDelegate 方法,处理列表项的选中事件 ) { .tableVIEw!.deselectRowAtIndexPath(indexPath,animated: true ) itemString = .ctrlnames![indexPath.row] alertController = UIAlertController (Title: "提示!" "你选中了【\(itemString)】" UIAlertControllerStyle Alert ) okAction = UIAlertAction "确定" UIAlertActionStyle Default nil ) alertController.addAction(okAction) .presentVIEwController(alertController,completion: ) } //滑动删除必须实现的方法 commitEditingStyle editingStyle: UItableVIEwCellEditingStyle ) { ( "删除\(indexPath.row)" ) index = indexPath.row .ctrlnames?.removeAtIndex(index) .tableVIEw?.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UItableVIEwRowAnimation top ) } //滑动删除 NSIndexPath ) { return UItableVIEwCellEditingStyle Delete } //修改删除按钮的文字 TitleForDeleteConfirmationbuttonForRowAtIndexPath indexPath: String ? { return "删" } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() } }

--- Controls.pList --- 16
<? xml version = "1.0" enCoding "UTF-8" ?> <!DOCTYPE pList PUBliC "-//Apple//DTD PList 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> < pList "1.0" > array > string >标签 UILabel</ > >文本框 UITextFIEld</ > >按钮 UIbutton</ > >开关按钮 UISwitch</ > >分段控件 UISegmentControl</ > >图像 UIImageVIEw</ > @H_404_344@>进度条 UIProgressVIEw</ > >滑动条 UiSlider</ > >警告框 UIAlertVIEw</ > </ > pList >

NSArray是Objective-C里的数组类型。Array是Swift里的数组类型。
为了便于使用,这里把NSArray做了类型转换,转成Array。

as 关键字就是起到类型转换的作用。


NSArray是Objective-C原来就有的类型,Array是Swift新增的类型,Array新加许多方法,更便于 *** 作,所以Swift中可以使用Array的尽量使用Array。var ctrlnames:Array? 可以简写成 var ctrlnames:[String]?

总结

以上是内存溢出为你收集整理的Swift - 使用表格组件(UITableView)实现单列表全部内容,希望文章能够帮你解决Swift - 使用表格组件(UITableView)实现单列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1080614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存