本文主要介紹的是關於UITableViewCell在編輯狀態下背景顏色的修改方法,分享出來供大家參考學習,下面來一起看看詳細的介紹:
一、先看下效果圖
二、網上很多下面這種答案
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; cell.selectionStyle = UITableViewCellSelectionStyleNone;
這樣設置,藍色的選中圖標也不會出現.
這種僅限於不編輯的時候,讓TableViewCell沒有灰色高亮.
三、具體實現:
(1).在創建cell的時候設置selectedBackgroundView
RealTimeControlTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId]; if (cell == nil) { cell = [[RealTimeControlTableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellId]; cell.contentView.backgroundColor = [UIColor clearColor]; UIView *backGroundView = [[UIView alloc]init]; backGroundView.backgroundColor = [UIColor clearColor]; cell.selectedBackgroundView = backGroundView; }
(2).自定義一個UITableVIewCell重寫
- (void)setSelected:(BOOL)selected animated:(BOOL)animated { if (!self.editing) { return; } [super setSelected:selected animated:animated]; if (self.editing) { self.contentView.backgroundColor = [UIColor clearColor]; self.textLabel.backgroundColor = [UIColor clearColor]; self.detailTextLabel.backgroundColor = [UIColor clearColor]; } }
(3)還要重寫下面方法 因為在長按cell的時候也會高亮,出現灰色的背景
-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{ return; }
對上面第二步代碼說明:
1.在非編輯狀態下,默認不會出現選中效果,直接return.
return 以後還是會繼續調用
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 在這裡處理cell的點擊事件 }
2.要實現選中的藍色圖標出現,以及添加cell到選中cell的數組.
調用系統的默認方法
[super setSelected:selected animated:animated];
3.在編輯狀態下修改cell的contenView為clear,清除選中時候的灰色背景.
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對本站的支持。