1. 程式人生 > >UITableViewCell高亮(按下)時,子檢視背景色變透明的解決方法

UITableViewCell高亮(按下)時,子檢視背景色變透明的解決方法

UITableViewCell highlighted subviews backgroundColor

自定義的UITableViewCell,在上面新增一個UIView(這裡是UILabel),設定UILabel背景色。但是當cell處於按下狀態時,UILabel背景色就會消失。如圖(選中行的(2)背景色消失):


其實這個問題的原因可以在文件裡找到,(大意)當cell處於highlighted/selected狀態時,預設會執行如下動作:

1:將其所有子檢視的backgroundColor設定為清除顏色(透明)。

2:突出顯示可以突出顯示的所有子檢視內容(就是強調內容),例如UIImageView。

想要讓消失的UILabel背景色回來,只要解決第一個問題即可。

解決方法:

過載自定義cell的highlighted方法(是否過載selected看你需要),需要注意設定:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

否則cell高亮時還是會執行系統預設動作。

//由於numLabel修改了背景顏色,所以高亮需要自己處理
//注意:cell的selectionStyle必須是:UITableViewCellSelectionStyleNone;否則無效
-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    [super setHighlighted:highlighted animated:animated];
    //動畫高亮變色效果
    [UIView animateWithDuration:0.3 animations:^{
        if(highlighted)
            self.contentView.backgroundColor = [UIColor colorWithWhite:0.85 alpha:1];
        else
            self.contentView.backgroundColor = [UIColor whiteColor];
    }];
}

這樣問題就解決了。

轉載請註明出處:http://blog.csdn.net/cuibo1123

=======


歡迎加我微信探討問題:lofocus

相關推薦

UITableViewCell()檢視景色透明解決方法

UITableViewCell highlighted subviews backgroundColor自定義的UITableViewCell,在上面新增一個UIView(這裡是UILabel),設定UILabel背景色。但是當cell處於按下狀態時,UILabel背景色就會

iOS點選cell控制元件景色消失的解決方法

同時呼叫一下兩個方法: - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; self.quickProfessionLabel

TV_指定遙控器方向鍵盤的上下左右被一個獲得焦點控制元件的控制元件

android:nextFocusUp- 定義當點up鍵時,哪個控制元件將獲得焦點 android:nextFocusDown-定義當點down鍵時,哪個控制元件將獲得焦點 android:nextFocusLeft-定義當點left鍵時,哪個控制元件將獲得焦點 android:nextFo

Unity3D:輸出點選到的UI

PointerEventData eventData = new PointerEventData(EventSystem.current); eventData.pressPosition = pos; eventData.position = pos; List<RaycastResul

新增檢視控制器檢視控制器的viewWillAppear方法不呼叫

直接貼程式碼: [baseController beginAppearanceTransition:trueanimated:false]; [self.viewaddSubview:baseController.view]; [baseController e

安裝npm install長時間停留在fetchMetadata: sill 解決方法——換npm的源

sta 資源問題 但是 install org .org 長時間 info data 安裝npm install時,長時間停留在fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fe

對於halcon與MFC或c#編程中當寫入滾輪放縮圖像圖像會閃屏的解決方法

lena 清除 必須 pty temporary csdn 名稱 方法 等級 //會閃屏的代碼,更新圖像函數如下(以MFC為例)******************************************************* void CGeomLocat

confirm顯示數組中的內容總是帶一個逗號分隔的解決方法

script new arr sub blog item type onf val 問題的關鍵 就是在給confirm顯示之前,將數組轉換成字符串,並以每個數組的元素為一個字符串,加上一個換行回車符即可: 代碼中的背景色 為關鍵的點 <script type="te

tcp連接BROKEN PIPE錯誤的原因以及解決方法

tcp 技術 sizeof com http 發送消息 spl 系統 alt 問題: 寫了一個server和一個client,UNIX套接字的,server不斷接收消息並打印出來,client是一個交互程序,輸入一個消息回車發送,接著又可以輸入消息。出問題了:當server

IntelliJ IDEA 中 右鍵新建(new)選項沒有scala(java) class的解決方法和具體解釋

首先註明:本文不是原創,我也是在網上找了好久,找到這篇博文(連結),解決了我的問題,順便在這裡總結一下,給有需要的人。 專案是用Maven 建立的,具體的建立過程就不做解釋了。出現的問題如下:  具體問題的圖,如下: 開啟設定介面的路徑如下: 主介面File——&

python爬蟲判斷IP代理是否有效的解決方法

1、不停的請求測試,可以發現網路IP在不斷更新  import requests import random # 該網站會返回你請求網站時的IP地址資訊 url = 'http://icanhazip.com' #首先我們在xicidaili.com中獲取一些ip代理資訊,放入列表中

eclipse新建maven的web專案pom.xml的war報錯解決方法/pom.xml將jar直接修改為war報錯解決方法

步驟一 在pom.xml中的(若有)裡面新增外掛,沒有就直接複製一下程式碼。 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</group

Intellij匯入子專案maven列表子專案灰色不可用---解決方法

匯入子專案的module時,左側project目錄中有一個module圖示右下角沒有小藍點,maven管理列表該module為灰色(表明未被管理),嘗試幾次後終於找到解決方案。 貼一張調好過後的圖

VMware tools出現“正在進行簡易安裝無法手動啟動VMware tools安裝”解決方法

遇到的問題: 安裝VMware Tools的時候提示“正在進行簡易安裝時,無法手動啟動VMware tools安裝”的提示資訊。 解決方法如下: 1.首先關閉當前正在執行的虛擬機器,在虛擬機

安裝 VMware tools出現“正在進行簡易安裝無法手動啟動VMware tools安裝”解決方法是:

安裝VMware虛擬機器的時候如果出現“正在進行簡易安裝時,無法手動啟動VMware tools安裝”的提示資訊,如下圖所示: 解決方法是: 修改1, 修改2,確認是否為如圖所示。  

css父級div設定了透明度級也出現透明度的解決方法

由於父級div使用了opacity設定透明度,使子級div也繼承了透明度 我的解決方法是使用rgba,background-color:rgba(245,224,199,0.7),0.7是透明度,由於rgba是css3的屬性,所以必須是支援css3的瀏覽器才能支援rgba

安裝好Android Studio後開啟新建專案一直在Building Gradle project info解決方法

安裝好Android Studio後開啟新建專案時,一直在Building   Gradle project info. 1.檢視自己的Gradle版本: 我的地址如下:C:\Users\ym\.g

在tomcat上應用web報java.lang.NullPointerException錯誤的解決方法

Java程式碼:   exception   org.apache.jasper.JasperException: java.lang.NullPointerException       org.apache.jasper.servlet.JspServletWr

UEditor 解決拖拽視訊元素改變視訊尺寸無法儲存視訊尺寸問題的解決方法

    UEditor雖然強大,但是bug還是蠻多的。比如插入視訊元素後,拖拽視訊去縮放尺寸,編輯器並沒有將實際的尺寸儲存下來。當你點選HTML按鈕檢視原始碼時,width和height還是原來的值,再次點選此按鈕回到正常狀態,縮圖又回到原來的大小了。     翻原

style物件的使用當滑鼠背景顏色變為黃色,當滑鼠放開變為藍色

<!DOCTYPE html> <html lang="zh"> <head>     <meta charset="UTF-8" />     <meta name="viewport