Swift自定義UITableViewCell背景色
本文實例為大家分享了Swift自定義UITableViewCell背景色的具體代碼,供大家參考,具體內(nèi)容如下
效果
前言
前段時間在整理課件 《UITableView》 章節(jié)的時候,看著單元格選中時的背景顏色覺得特別扭,系統(tǒng)給的顏色太過單調(diào),當(dāng)時想整理一篇修改單元格選中樣式的文章,但一直沒有時間,現(xiàn)在閑下來,終于可以完成了。在實際開發(fā)中,系統(tǒng)提供的樣式不能滿足需求,可能大家想到的最直接的方式就是定制,自定義。沒錯,這里修改表格視圖單元格選中時的背景顏色也是通過自定義單元格的方法實現(xiàn),當(dāng)然也可以通過代理方法實現(xiàn),如果有興趣,大家可以研究一下。
實現(xiàn)
在UITableViewCell的子類文件(CustomTableViewCell.swift)中實現(xiàn)如下方法即可
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() ? ? } }
運(yùn)行工程,可能你會發(fā)現(xiàn),當(dāng)你點擊單元格的時候,選中樣式依舊是系統(tǒng)樣式,如下圖:
這是什么原因?qū)е碌哪兀?/strong>打開視圖層級,我們就會發(fā)現(xiàn),其實我們已經(jīng)設(shè)置成功了,只是被遮住了,如下圖:
那應(yīng)該如何解決呢?其實很簡單,只需要修改cell的selectionStyle屬性即可,如下所示:
cell.selectionStyle = UITableViewCellSelectionStyle.None
現(xiàn)在,我們就完成了自定義單元格選中樣式了,特簡單吧?
延伸
有時可能會有這種需求,就是我不需要選中背景色,但是我想在點擊某個單元格的時候閃一下,即背景色突變一下就OK,像這種需求又改如何解決呢?
首先,我們需要實現(xiàn)如下方法,當(dāng)單元格不管是選中也好,未選中也罷,都設(shè)為白色。
override func setSelected(selected: Bool, animated: Bool) { ? ? super.setSelected(selected, 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() }
除了在代理方法中操作,還可以在自定義單元格中實現(xiàn),效果一致,只是無需通過代理方法實現(xiàn),具體實現(xiàn)如下:
override func setHighlighted(highlighted: Bool, animated: Bool) { ? ? if highlighted { ? ? ? ? self.backgroundColor = UIColor.redColor() ? ? }else { ? ? ? ? self.backgroundColor = UIColor.whiteColor() ? ? } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
舉例講解Swift編程中switch...case語句的用法
這篇文章主要介紹了Swift編程中switch...case語句的用法,其中fallthrough關(guān)鍵字在switch語句中的使用是重點,需要的朋友可以參考下2016-04-04因為一個Crash引發(fā)對Swift構(gòu)造器的思考分析
這篇文章主要給大家介紹了關(guān)于因為一個Crash引發(fā)對Swift構(gòu)造器的思考分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10