修改tableviewCell的选中颜色

##题记: 最近公司的项目开始改版了,也新来了一个项目经理,项目确实比以前好看多了,要求也更苛刻了,让我们修改tableviewCell点击后的背景颜色,试了好久终于找到了解决的方法,在这里和大家分享一下!

###初次尝试 首先肯定去头文件里看看有什么属性我们觉得像的,拿来试一试再说(不管是这个问题,以后碰到类似的问题都可以这样去试试,屡试不爽!),苹果只给我们一个设置cell的背景视图,没有给我们一个设置背景颜色的属性,我尝试的设置一个背景视图,并给这个背景视图设置颜色,代码如下: cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame]; cell.selectedBackgroundView.backgroundColor = [UIColor redColor]; 设置之后满怀期待的等待奇迹的发生,果然奇迹出现了,但是还是有问题,就是点击的时候确实变颜色了,push到下一个控制器之后,再回来发现选中的颜色还是存在的

###继续尝试 在cell的点击代理(didSelectRowAtIndexPath)中把cell的背景颜色在改回来,代码如下: UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.backgroundColor = [UIColor whiteColor]; cell.selected = NO; 我发现这样就ok了这么简单,

###问题 有的时候还是会有问题,点击的时候颜色不对 - (nullable NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.backgroundColor = [UIColor redColor]; return indexPath; } 为了解决这个问题,我在这个代理方法里改变cell的背景颜色,这个方法是在点击上cell的时候就开始调用,那个didSelected是手抬开的时候调用,这样这个问题就完美的解决了,哈哈~ demo地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值