[Swift通天遁地]二、表格表单-(2)创建右侧带有索引的UITableView(表单视图)

[Swift通天遁地]二、表格表单-(2)创建右侧带有索引的UITableView(表单视图),第1张

概述本文将演示如何给表格添加索引功能。 在项目导航区,打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码,创建一个表格,并在表格右侧添加一列快捷索引。 1 import UIKit 2 3 //使当前的视图控制器类,遵循表格的数据源协议UITableViewDataSource 4 class ViewController: UIViewCo

本文将演示如何给表格添加索引功能。

在项目导航区,打开视图控制器的代码文件【VIEwController.swift】

现在开始编写代码,创建一个表格,并在表格右侧添加一列快捷索引。

  1 import UIKit  2   3 //使当前的视图控制器类,遵循表格的数据源协议UItableVIEwDataSource  4 class VIEwController: UIVIEwController,UItableVIEwDataSource {  5   6     //创建一个字典对象,作为表格的数据来源。字典中的键,将作为表格的索引列表。  7     var countrIEs :Dictionary<String,[String]> = ["A": ["Afghanistan","Albania","Algeria","Angola","Australia","Austria","Azerbaijan"],  8     "B":["Bangladesh","Belgium","Bhutan","Bolivia","Brazil","Bahrain","Bulgaria"],  9     "C":["Canada","Congo","Chile","China","Colombia","Cuba"], 10     "D":["Denmark","Djibouti","Dominica"], 11     "E":["Egypt","Estonia","Ethiopia"], 12     "F":["Fiji","Finland","France"], 13     "G":["Gambia","Germany","Greece"], 14     "H":["Haiti","Honduras","Hungary"], 15     "I":["India","Indonesia","Iran","Ireland","Iraq","Italy"], 16     "J":["Jordan","Japan"], 17     "K":["Kazakhstan","Korea","Kuwait"], 18     "L":["Laos","libya","Lebanon"], 19     "M":["Madagascar","Morocco","Malaysia","Mexico","Mali","Mozambique"], 20     "N":["Nepal","Netherlands","Nigeria","New Zealand"], 21     "O":["Oman"], 22     "P":["Pakistan","Panama","Philippines","Portugal"], 23     "Q":["Qatar"], 24     "R":["Romania","South Africa","Russia"], 25     "S":["Serbia & Montenegro","Senegal","Singapore","Somalia","Switzerland"], 26     "T":["Thailand","Turkmenistan","Tunisia","Turkey"], 27     "U":["United arab Emirates","United States of America","Uzbekistan"], 28     "V":["Vanuatu","Venezuela","VIEtnam"], 29     "Y":["Yemen"], 30     "Z":["Zambia","Zimbabwe"]] 31      32     //创建一个字符串数组,作为当前类的另一个属性 33     var keys:[String] = [] 34  35     overrIDe func vIEwDIDLoad() { 36         super.vIEwDIDLoad() 37         // Do any additional setup after loading the vIEw,typically from a nib. 38          39         //将字典的键转换为数组,并执行升序排列,这个数组将被作为索引使用 40         keys = Array(countrIEs.keys).sorted() 41  42         //获得设备的屏幕尺寸 43         let screenRect = UIScreen.main.bounds 44         //创建一个矩形区域,作为表格视图的显示区域。 45         let tableRect = CGRect(x: 0, 46                                y: 20, 47                                wIDth: screenRect.size.wIDth, 48                                height: screenRect.size.height - 20) 49         //初始化一个指定显示区域的表格对象 50         let tableVIEw = UItableVIEw(frame: tableRect) 51          52         //设置表格对象的数据源为当前的视图控制器对象 53         tableVIEw.dataSource = self 54         //并将表格视图添加到根视图中 55         self.vIEw.addSubvIEw(tableVIEw) 56     } 57      58     //添加一个代理方法,用来设置表格的段落的数量 59     func numberOfSections(in tableVIEw: UItableVIEw) -> Int 60     { 61         //在此设置段落的数量,等于字典中键的数量 62         return keys.count 63     } 64      65     //添加一个代理方法,用来设置表格的行数 66     func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int 67     { 68         //获得当前段落的序号, 69         let subCountrIEs = countrIEs[keys[section]] 70         //然后获得在字典中,对应的值的数量 71         //以该数量作为当前段落的行数 72         return (subCountrIEs?.count)! 73     } 74      75     //添加一个代理方法,用来设置表格的段落标题 76     func tableVIEw(_ tableVIEw: UItableVIEw,TitleForheaderInSection section: Int) -> String? 77     { 78         return keys[section] 79     } 80      81     //添加一个代理方法,用来设置表格索引的标题数组 82     func sectionIndexTitles(for tableVIEw: UItableVIEw) -> [String]? 83     { 84         return keys 85     } 86      87      //添加一个代理方法,用来初始化或复用表格中的单元格 88     func tableVIEw(_ tableVIEw: UItableVIEw,cellForRowAt indexPath: IndexPath) -> UItableVIEwCell 89     { 90         //创建一个字符串常量,作为单元格的复用标识 91         let IDentifIEr = "reusedCell" 92         //根据复用标识,从表格中获得可以复用的单元格 93         var cell = tableVIEw.dequeueReusableCell(withIDentifIEr: IDentifIEr) 94          95         //如果没有可以复用的单元格 96         if(cell == nil) 97         { 98             //则初始化一个默认样式的单元格,并设置单元格的复用标识 99             cell = UItableVIEwCell(style: UItableVIEwCellStyle.default,reuseIDentifIEr: IDentifIEr)100         }101         102         //根据当前单元格的段落序号,获得国家名称列表103         let subCountrIEs = countrIEs[keys[(indexPath as NSIndexPath).section]]104         //根据当前单元格的序号,获得该单元格需要显示的国家名称105         cell?.textLabel?.text = subCountrIEs![(indexPath as NSIndexPath).row]106         107         //返回设置好的单元格108         return cell!109     }110 111     overrIDe func dIDReceiveMemoryWarning() {112         super.dIDReceiveMemoryWarning()113         // dispose of any resources that can be recreated.114     }115 }
总结

以上是内存溢出为你收集整理的[Swift通天遁地]二、表格表单-(2)创建右侧带有索引的UITableView(表单视图)全部内容,希望文章能够帮你解决[Swift通天遁地]二、表格表单-(2)创建右侧带有索引的UITableView(表单视图)所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1022230.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存