iOS开发中UITableViewCell点击时子视图背景透明的解决方法

iOS开发中UITableViewCell点击时子视图背景透明的解决方法

        在作iOS项目的开发中,UITableView控件的应用十分普遍。在进行自定义UITableViewCell时,常常有小伙伴遇到这样的问题:在UITableViewCell上面添加了一个有背景颜色的子视图,当用户点击UITableViewCell或者选中UITableViewCell时,Cell上的子视图发生了奇怪的变化,其背景色变透明了,若是添加在Cell上的子视图只是一个色块,那么咱们看起来,这个子视图好像莫名其妙的消失了同样。以下图所示:spa

    产生这种状况的主要缘由是因为UITableViewCell的选中风格所致。若是开发者不进行设置,UITableViewCell中的selectionStyle属性默认风格为UITableViewCellSelectionStyleBlue。这时,若是用户点击或者选中了某个Cell,系统会自动将其上子视图的背景色改为透明以便统一Cell的总体背景颜色。开发者能够将其设置为UITableViewCellSelectionStyleNone枚举值来不适用任何Cell的选中风格。code

    若是须要使用Cell的选中风格同时又不想让Cell上的子视图收到影响,咱们能够继承UITableViewCell后在其中覆写父类的以下两个方法,在这些方法中从新设置子视图的背景色:继承

//这个方法在Cell被选中或者被取消选中时调用
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.testLabel.backgroundColor = [UIColor orangeColor];
}
//这个方法在用户按住Cell时被调用
-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
    [super setHighlighted:highlighted animated:animated];
    self.testLabel.backgroundColor = [UIColor orangeColor];
}

以下图:开发

专一技术,热爱生活,交流技术,也作朋友。io

——珲少 QQ群:203317592class

相关文章
相关标签/搜索