前段时间在整理课件 《UItableVIEw
》 章节的时候,看着单元格选中时的背景颜色觉得特别扭,系统给的颜色太过单调,当时想整理一篇修改单元格选中样式的文章,但一直没有时间,现在闲下来,终于可以完成了。在实际开发中,系统提供的样式不能满足需求,可能大家想到的最直接的方式就是定制,自定义。没错,这里修改表格视图单元格选中时的背景颜色也是通过自定义单元格的方法实现,当然也可以通过代理方法实现,如果有兴趣,大家可以研究一下。
在UItableVIEwCell的子类文件(CustomtableVIEwCell.swift
)中实现如下方法即可
overrIDe func setSelected(selected: Bool,animated: Bool) { super.setSelected(selected,animated: animated) // Configure the vIEw for the selected state if selected { self.backgroundcolor = UIcolor.orangecolor() }else { self.backgroundcolor = UIcolor.whitecolor() }}
运行工程,可能你会发现,当你点击单元格的时候,选中样式依旧是系统样式,如下图:
这是什么原因导致的呢?打开视图层级,我们就会发现,其实我们已经设置成功了,只是被遮住了,如下图:
那应该如何解决呢?其实很简单,只需要修改cell的selectionStyle
属性即可,如下所示:
cell.selectionStyle = UItableVIEwCellSelectionStyle.None
现在,我们就完成了自定义单元格选中样式了,特简单吧?
延伸有时可能会有这种需求,就是我不需要选中背景色,但是我想在点击某个单元格的时候闪一下,即背景色突变一下就OK,像这种需求又改如何解决呢?
首先,我们需要实现如下方法,当单元格不管是选中也好,未选中也罢,都设为白色。
overrIDe func setSelected(selected: Bool,animated: animated) // Configure the vIEw for the selected state if selected { self.backgroundcolor = UIcolor.whitecolor() }else { self.backgroundcolor = UIcolor.whitecolor() }}
其次,在代理方法中,做如下 *** 作:
func tableVIEw(tableVIEw: UItableVIEw,dIDHighlightRowAtIndexPath indexPath: NSIndexPath) { let cell = tableVIEw.cellForRowAtIndexPath(indexPath) // change the cell background color cell?.backgroundcolor = UIcolor.redcolor()}
除了在代理方法中 *** 作,还可以在自定义单元格中实现,效果一致,只是无需通过代理方法实现,具体实现如下:
overrIDe func setHighlighted(highlighted: Bool,animated: Bool) { if highlighted { self.backgroundcolor = UIcolor.redcolor() }else { self.backgroundcolor = UIcolor.whitecolor() }}总结
以上是内存溢出为你收集整理的Swift:自定义UITableViewCell背景色全部内容,希望文章能够帮你解决Swift:自定义UITableViewCell背景色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)