最近一个朋友问我,如何实现表格视图的单选?因为我之前用Objective-c写过一次,但那都是很久以前的事情了,于是就想着用swift实现一次,并分享给大家。
实现下面我们来看看具体的实现方法。
首先我们创建一个Swift iOS工程,在AppDelegate.swift的dIDFinishLaunchingWithOptions
方法中手动初始化UIWindow,并且给根视图控制器添加导航栏,当然在此之前我们需要到Info.pList
文件中将Storyboard加载UIWindow字段的 Main
值删除。
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)self.window?.backgroundcolor = UIcolor.blackcolor()self.window?.rootVIEwController = UINavigationController(rootVIEwController: VIEwController())self.window?.makeKeyAndVisible()
下一步,我们需要到VIEwController.swift文件中搭建界面,构造表格视图,以及数据源的配置,这里我直接上代码,相信表格视图的使用大家已经非常熟悉了。代码中注册的单元格使用的是自定义的单元格,而处理单选的方法主要就是在自定义单元格 CustomtableVIEwCell
中实现,稍后我会提及,涉及到的素材可到阿里矢量图中下载。
import UIKitclass VIEwController: UIVIEwController,UItableVIEwDataSource,UItableVIEwDelegate { var tableVIEw: UItableVIEw? var dataSource: [String]? overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.initializeDatasource() self.initializeUserInterface() } // MARK:Initialize methods func initializeDatasource() { self.dataSource = ["中国","美国","法国","德国"] } func initializeUserInterface() { self.Title = "单项选择" self.automaticallyAdjustsScrollVIEwInsets = false self.vIEw.backgroundcolor = UIcolor.whitecolor() // initialize table vIEw self.tableVIEw = { let tableVIEw = UItableVIEw(frame: CGRectMake(0,64,CGRectGetWIDth(self.vIEw.bounds),CGRectGetHeight(self.vIEw.bounds) - 64),style: UItableVIEwStyle.Grouped) tableVIEw.dataSource = self tableVIEw.delegate = self tableVIEw.separatorStyle = UItableVIEwCellSeparatorStyle.Singleline tableVIEw.registerClass(CustomtableVIEwCell.classForCoder(),forCellReuseIDentifIEr: "cellIDentifIEr") return tableVIEw }() self.vIEw.addSubvIEw(self.tableVIEw!) } // MARK:UItableVIEwDataSource && UItableVIEwDelegate func numberOfSectionsIntableVIEw(tableVIEw: UItableVIEw) -> Int { return 1 } func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return (self.dataSource?.count)! } func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell { let cell = tableVIEw.dequeueReusableCellWithIDentifIEr("cellIDentifIEr",forIndexPath: indexPath) as! CustomtableVIEwCell cell.imageVIEw?.image = UIImage(named: "iconFont-select.png") cell.textLabel?.text = self.dataSource![indexPath.row] return cell } func tableVIEw(tableVIEw: UItableVIEw,heightForheaderInSection section: Int) -> CGfloat { return 40 } func tableVIEw(tableVIEw: UItableVIEw,TitleForheaderInSection section: Int) -> String? { return "请选择您向往的城市:" } func tableVIEw(tableVIEw: UItableVIEw,dIDSelectRowAtIndexPath indexPath: NSIndexPath) { // get cell with index path let cell = tableVIEw.cellForRowAtIndexPath(indexPath) print("您选择的城市:\((cell?.textLabel?.text)!)") }}
接下来我们看看 CustomtableVIEwCell.swift 文件,在自定义单元格中,要做的 *** 作非常简单,只需在 setSelected
方法中做如下 *** 作即可:
overrIDe func setSelected(selected: Bool,animated: Bool) { super.setSelected(selected,animated: animated) if selected { imageVIEw?.image = UIImage(named: "iconFont-selected.png") }else { imageVIEw?.image = UIImage(named: "iconFont-select.png") } }}
好了,表格视图的单选就这样实现了,运行看看吧。
总结以上是内存溢出为你收集整理的Swift:表格视图实现单选全部内容,希望文章能够帮你解决Swift:表格视图实现单选所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)