iOS UITableViewCell点击选中highlight

作者: Two_Seven | 来源:发表于2016-06-20 13:24 被阅读1447次
效果对比

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

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

第一种:直接将颜色赋到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点击选中highlight

    本文链接:https://www.haomeiwen.com/subject/yxywdttx.html