溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Swift自定義UITableViewCell背景色的方法

發(fā)布時(shí)間:2022-01-26 14:16:42 來(lái)源:億速云 閱讀:122 作者:zzz 欄目:開(kāi)發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“Swift自定義UITableViewCell背景色的方法”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Swift自定義UITableViewCell背景色的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

效果

Swift自定義UITableViewCell背景色的方法

實(shí)現(xiàn)

在UITableViewCell的子類(lèi)文件(CustomTableViewCell.swift)中實(shí)現(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)行工程,可能你會(huì)發(fā)現(xiàn),當(dāng)你點(diǎn)擊單元格的時(shí)候,選中樣式依舊是系統(tǒng)樣式,如下圖:

Swift自定義UITableViewCell背景色的方法

這是什么原因?qū)е碌哪兀?/strong>打開(kāi)視圖層級(jí),我們就會(huì)發(fā)現(xiàn),其實(shí)我們已經(jīng)設(shè)置成功了,只是被遮住了,如下圖:

Swift自定義UITableViewCell背景色的方法

那應(yīng)該如何解決呢?其實(shí)很簡(jiǎn)單,只需要修改cell的selectionStyle屬性即可,如下所示:

cell.selectionStyle = UITableViewCellSelectionStyle.None

現(xiàn)在,我們就完成了自定義單元格選中樣式了,特簡(jiǎn)單吧?

延伸

有時(shí)可能會(huì)有這種需求,就是我不需要選中背景色,但是我想在點(diǎn)擊某個(gè)單元格的時(shí)候閃一下,即背景色突變一下就OK,像這種需求又改如何解決呢?

首先,我們需要實(shí)現(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()
}

除了在代理方法中操作,還可以在自定義單元格中實(shí)現(xiàn),效果一致,只是無(wú)需通過(guò)代理方法實(shí)現(xiàn),具體實(shí)現(xiàn)如下:

override func setHighlighted(highlighted: Bool, animated: Bool) {
    if highlighted {
        self.backgroundColor = UIColor.redColor()
    }else {
        self.backgroundColor = UIColor.whiteColor()
    }
}

讀到這里,這篇“Swift自定義UITableViewCell背景色的方法”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI