問(wèn)題場(chǎng)景
需要自定義tableViewCell的點(diǎn)擊效果色着茸,但是在編輯的時(shí)候不能有點(diǎn)擊效果。所以給cell添加了一個(gè)selectBackgroudView修改顏色樟澜,之后在編輯狀態(tài)在去掉顏色误窖。
- (void)awakeFromNib {
self.selectedBackgroundView = [[UIView alloc] initWithFrame:self,ContentView.Frame];
self.selectedBackgroundView.background = [UIColor redColor];
}
- (void)willTransitionToState:(UITableViewCellStateMask)state {
if(state == UITableViewCellStateShowingEditControlMask){
self.selectedBackgroundView.background = [UIColor clearColor];
} else {
self.selectedBackgroundView.background = [UIColor redColor];
}
[super willTransitionToState:state];
}
問(wèn)題
當(dāng)cell是選中狀態(tài)的時(shí)候,會(huì)將label秩贰、imageView等的背景色進(jìn)行修改霹俺。(此處只有中心有部分變了顏色是因?yàn)槲以O(shè)置了他的圓角屬性)
選中前
選中后
的選中色。
解決辦法
設(shè)置allowsMultipleSelectionDuringEditing=YES毒费;就可以在編輯狀態(tài)選中cell不顯示選中背景色吭服,控件的背景色也不會(huì)被修改。
注意
如果支持iOS7請(qǐng)?jiān)谶M(jìn)入編輯的時(shí)候設(shè)置allowsMultipleSelectionDuringEditing=YES蝗罗,退出的時(shí)候設(shè)置為NO艇棕。原因請(qǐng)看 iOS7下tableView側(cè)滑刪除不能觸發(fā)