效果對比
很驚訝竟然工作了這么久才遇到這個(gè)問題委刘,是不是我的代碼寫的還是太少了??丧没,感覺不少同學(xué)會(huì)遇到這個(gè)問題,所以還是分享一下锡移。
一共找到了四種解決方案骂铁,大家可以根據(jù)自己的需求進(jìn)行選擇。
第一種:直接將顏色賦到layer層上面
_todayLbl.layer.backgroundColor = [UIColor customOrangeColor].CGColor;
第二種:每次在layoutSubviews方法中重新給顏色賦值
- (void)layoutSubviews
{
[super layoutSubviews];
/*
功能代碼
*/
_todayLbl.backgroundColor = [UIColor customOrangeColor];
}
第三種:(如果你的背景色和文字都是固定不變的話),切成圖片好了罩抗,perfect拉庵!
第四種:重寫一個(gè)UILabl的子類,然后重寫顏色賦值方法
- (void)setPersistentBackgroundColor:(UIColor*)color {
super.backgroundColor = color;
}
- (void)setBackgroundColor:(UIColor *)color {
// do nothing - background color never changes
}
我的理解是UITableviewcell在選中狀態(tài)下套蒂,會(huì)通過layoutSubviews方法對UILabel的背景色做clear處理钞支,不過具體為什么沒搞清楚。
當(dāng)然如果選中類型選擇UITableViewCellSelectionStyleNone的話操刀,就不會(huì)出現(xiàn)文章中說的這種問題了烁挟。
【既然來了,留下個(gè)喜歡再走吧骨坑,鼓勵(lì)我繼續(xù)寫下去~~
如果喜歡我的文章撼嗓,那就關(guān)注我的簡書賬號吧,我們一起做朋友~~
如果是土豪欢唾,那就打賞一下吧且警,我喜歡和土豪做朋友~~】