UITableViewCell选中背景色覆盖分割线及自定义选中背景色的问题
UITableViewCell选中背景色覆盖分割线及自定义选中背景色的问题
巡天壮我心 发表于4年前
UITableViewCell选中背景色覆盖分割线及自定义选中背景色的问题
  • 发表于 4年前
  • 阅读 473
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 最近在优化项目的时候碰到一个让人很纳闷,又很容易忽略的细节问题,所以把它记下来,防止以后出现同样的问题。
最近项目中用到UITableView中cell之间要用自定义的虚线分割,然后选中cell出现淡黄色效果。按照逻辑出现自定义效果可以自己创建一个继承UITableViewCell的类,里面加上:UIView *lineView = [[UIView alloc] init];
        lineView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"CR_meetingroomlist_Line"]];
        lineView.frame = CGRectMake(17, self.frame.size.height - 1,402,1);
        [self addSubview:lineView];
然后在用到cell的这个方法里- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath加上    cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.frame];
    cell.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:250.0f/255.0f green:250.0f/255.0f blue:198.0f/255.0f alpha:1];就可以点击cell出现淡黄色效果。此时的问题出现了,其实cell.selectedBackgroundView的大小你是无法去修改的,意思是即使你修改了它还是cell的大小。所以当你选中cell时,背景色老是把你的虚线给覆盖住。如果你设置点击后就消失的话,就仿佛那条分割线在跳动的感觉,让人很不舒服。之前一直以为是cell.selectedBackgroundView不对,就一直试图修改它的大小,后来发现这是个错误。我们正确的做法很简单:meetingRoomTBView.separatorColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"CR_meetingroomlist_Line"]];在UITableView上下功夫,而不是在UITableViewCell做改变。这样的话就不会出现背景色覆盖分割线的问题了。


共有 人打赏支持
粉丝 1
博文 5
码字总数 1657
×
巡天壮我心
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: