美文网首页
修改tableviewCell的选中颜色

修改tableviewCell的选中颜色

作者: xiao小马哥 | 来源:发表于2016-08-17 10:42 被阅读97次

    题记:

    最近公司的项目开始改版了,也新来了一个项目经理,项目确实比以前好看多了,要求也更苛刻了,让我们修改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地址

    相关文章

      网友评论

          本文标题:修改tableviewCell的选中颜色

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