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

iOS UITableViewCell点击选中highlighted高亮状态下UILable背景色失效解决方案。_第1张图片
效果对比

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

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

第一种:直接将颜色赋到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的话,就不会出现文章中说的这种问题了。

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

你可能感兴趣的:(iOS UITableViewCell点击选中highlighted高亮状态下UILable背景色失效解决方案。)