UITableViewCell高亮(按下)时,子视图背景色变透明的解决方法

原创 2016年11月16日 23:09:51

UITableViewCell highlighted subviews backgroundColor


自定义的UITableViewCell,在上面添加一个UIView(这里是UILabel),设置UILabel背景色。但是当cell处于按下状态时,UILabel背景色就会消失。如图(选中行的(2)背景色消失):



其实这个问题的原因可以在文档里找到,(大意)当cell处于highlighted/selected状态时,默认会执行如下动作:

1:将其所有子视图的backgroundColor设置为清除颜色(透明)。

2:突出显示可以突出显示的所有子视图内容(就是强调内容),例如UIImageView。


想要让消失的UILabel背景色回来,只要解决第一个问题即可。

解决方法:

重载自定义cell的highlighted方法(是否重载selected看你需要),需要注意设置:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

否则cell高亮时还是会执行系统默认动作。

//由于numLabel修改了背景颜色,所以高亮需要自己处理
//注意:cell的selectionStyle必须是:UITableViewCellSelectionStyleNone;否则无效
-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
{
    [super setHighlighted:highlighted animated:animated];
    //动画高亮变色效果
    [UIView animateWithDuration:0.3 animations:^{
        if(highlighted)
            self.contentView.backgroundColor = [UIColor colorWithWhite:0.85 alpha:1];
        else
            self.contentView.backgroundColor = [UIColor whiteColor];
    }];
}

这样问题就解决了。


转载请注明出处:http://blog.csdn.net/cuibo1123

=======


欢迎加我微信探讨问题:lofocus



版权声明:本文为博主原创文章,未经博主允许不得转载。博主微信:lofocus

UITableViewCell 自定义点击状态时背景颜色

tableViewCell 自定义点击时背景颜色
  • cuimingran
  • cuimingran
  • 2015年12月10日 15:03
  • 256

iOS当UITableViewCell被选中或者高亮的时候,它的所有子view的颜色都会改变

UITableViewCell changes the background color of all sub views when cell is selected or highlighted. ...
  • qq_21649645
  • qq_21649645
  • 2016年04月29日 17:15
  • 2690

IOS 设置TableViewCell背景透明

刚在网上看了下有些前辈关于UITableViewCell北京透明的设置方法,之后在自己的工程里面设置了下没有成功,自己找了下原因。 1.UItableViewController在实例化的时候创建了三...
  • u011009644
  • u011009644
  • 2015年08月17日 20:56
  • 3518

iOS关于cell点击更换背景颜色

具体的步骤是三个,第一步设定cell选择状态下的背景view // cell.selectionStyle = UITableViewCellSelectionStyleNone;  ...
  • AlenCzf
  • AlenCzf
  • 2016年04月28日 16:53
  • 1686

iOS 自定义cell点击后里面的子控件背景颜色被改变解决办法

1. 有一个自定义的cell,里面添加了一个自定义的背景颜色是红色的BadgeView控件,当点击cell的时候,BadgeView控件的背景颜色没了,如下图: 2. 解决办法是在c...
  • yaoliangjun306
  • yaoliangjun306
  • 2016年06月25日 11:05
  • 2225

UITableViewCell的选中时的颜色设置

1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle...
  • a6472953
  • a6472953
  • 2012年05月03日 17:10
  • 95722

UITableViewCell的高亮和选中状态

查看UITableViewCell的帮助文档我们可以看到它有两个属性highLighted、selected。 这两者之间到底又怎么样的联系呢?当我们点击cell的时候都发生了什么呢? 要达到这个...
  • WangPoTongXue
  • WangPoTongXue
  • 2013年06月19日 14:35
  • 5901

点击效果,给 UIButton UIView UIScrollView 加一个灰色的点击效果

如果要给button 或者是label 增加点击效果,那么可以这么做         btnCurrentHot.frame=CGRectMake(60+sizeWeight+offSet, 2...
  • amy376X
  • amy376X
  • 2013年10月17日 10:31
  • 2966

IOS UIview设置背景图片以及设置背景色遇到的问题

UIview设置背景图片 self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageNamed:@"tit...
  • lxp1021
  • lxp1021
  • 2015年02月10日 23:52
  • 16488

Swift开发教程--如何使UITableViewController背景透明

self.tableView.backgroundView?.backgroundColor = UIColor.clearColor(); self.tableView.backgroundCo...
  • wanglixin1999
  • wanglixin1999
  • 2015年07月14日 18:10
  • 1603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableViewCell高亮(按下)时,子视图背景色变透明的解决方法
举报原因:
原因补充:

(最多只允许输入30个字)