Swift:表格视图实现单选

Swift:表格视图实现单选,第1张

概述效果展示 前言 最近一个朋友问我,如何实现表格视图的单选?因为我之前用Objective-c写过一次,但那都是很久以前的事情了,于是就想着用swift实现一次,并分享给大家。 实现 下面我们来看看具体的实现方法。 首先我们创建一个Swift iOS工程,在AppDelegate.swift的didFinishLaunchingWithOptions 方法中手动初始化UIWindow,并且给根视图控 效果展示 前言

最近一个朋友问我,如何实现表格视图的单选?因为我之前用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:表格视图实现单选所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1082453.html

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

发表评论

登录后才能评论

评论列表(0条)

保存