iOS UITableViewCell点击选中highlighted高亮状态下UILable背景色失效解决方案。

效果对比

很惊讶竟然工作了这么久才遇到这个问题,是不是我的代码写的还是太少了😂,感觉不少同学会遇到这个问题,所以还是分享一下。

一共找到了四种解决方案,大家可以根据自己的需求进行选择。

第一种:直接将颜色赋到layer层上面

_todayLbl.layer.backgroundColor = [UIColor customOrangeColor].CGColor;

第二种:每次在layoutSubviews方法中重新给颜色赋值

- (void)layoutSubviews
{
    [super layoutSubviews];
    /*
     功能代码
     */
     _todayLbl.backgroundColor = [UIColor customOrangeColor];
}

第三种:(如果你的背景色和文字都是固定不变的话),切成图片好了,perfect!

第四种:重写一个UILabl的子类,然后重写颜色赋值方法

- (void)setPersistentBackgroundColor:(UIColor*)color {
    super.backgroundColor = color;
}
- (void)setBackgroundColor:(UIColor *)color {
    // do nothing - background color never changes
}

我的理解是UITableviewcell在选中状态下,会通过layoutSubviews方法对UILabel的背景色做clear处理,不过具体为什么没搞清楚。
当然如果选中类型选择UITableViewCellSelectionStyleNone的话,就不会出现文章中说的这种问题了。

【既然来了,留下个喜欢再走吧,鼓励我继续写下去~~
如果喜欢我的文章,那就关注我的简书账号吧,我们一起做朋友~~
如果是土豪,那就打赏一下吧,我喜欢和土豪做朋友~~】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,262评论 1 9
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,401评论 30 472
  • UIWindow 初始化: self.window= [[UIWindowalloc]initWithFrame:...
    Sunny_Fight阅读 4,681评论 0 1
  • Day 2016-6-26 @property 完成的事情:自动生成并且实现setter 和getter 方法,创...
    鱼香肉丝_我鱼呢阅读 1,868评论 0 0
  • 黑眼圈和眼袋,自这一年工作始,便没有消减过。有时候是淡淡的,有时候是深色的。也曾无数次跟自己说,“要早睡早起,注意...
    鄚临阅读 1,076评论 1 1

友情链接更多精彩内容