IOS 自定义cell 分割线不完整

一时失言乱红尘 2022-08-07 16:33 252阅读 0赞

1、 问题

第一次进去的时候,发现1-6 这个cell右边没有分割线,而且这个1-6的Cell 不能选中,影响事件。 但是当上下滑动后,它会出来,完全正常。

Center

2、解决办法

折腾了 大半天, 找到原因:

注释掉自定义cell类里的- (void)setFrame:(CGRect)frame 方法,IOS7 就好了。

@implementation MyTableViewCell

- (void)setFrame:(CGRect)frame {

  1. frame.size.width = self.window.frame.size.width;
  2. \[supersetFrame:frame\];

}

再去IOS 8 测试,发现全没分割线了:

解决办法在对应的TableViewController里面加上下面语句,就好了

self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

3、分割线相关扩展

分割线没有显示全,左边有一段缺失:

下面code 可以解决

-(void)viewDidLayoutSubviews {

if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {

  1. \[self.tableView setSeparatorInset:UIEdgeInsetsZero\];

}

if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {

  1. \[self.tableView setLayoutMargins:UIEdgeInsetsZero\];

}

}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{

  1. if (\[cell respondsToSelector:@selector(setLayoutMargins:)\]) \{
  2. \[cell setLayoutMargins:UIEdgeInsetsZero\];

}

if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

  1. \[cell setSeparatorInset:UIEdgeInsetsZero\];

}

}

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读