你好,我是一个新手iOS开发者。我正在开发一个应用程序,其中使用了UITableView
。
TableView
中包含一些带分隔线的单元格和一些不带分隔线的单元格。
请问有没有人可以告诉我如何针对特定的单元格移除分隔线?
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, cell.bounds.size.width);
上述代码适用于iOS 7。我该如何在iOS 6中实现这个功能呢? 非常感谢您的帮助。
你好,我是一个新手iOS开发者。我正在开发一个应用程序,其中使用了UITableView
。
TableView
中包含一些带分隔线的单元格和一些不带分隔线的单元格。
请问有没有人可以告诉我如何针对特定的单元格移除分隔线?
cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, cell.bounds.size.width);
UITableViewCell
布局的顶部添加一个背景颜色与所需分隔线相同的UIView
,将其高度设为1个像素(与线条相同),宽度设为单元格宽度(cell.frame.size.width)。之后,在cellForRowAtIndexPath
中,只需为您不想显示它的单元格设置此属性hidden
= YES
,对于那些您想要显示的单元格则将hidden
设置为NO
。这是一种简单的解决方案,适用于任何iOS版本。但如果您添加自定义分隔符,请不要忘记为所有tableview禁用默认分隔符。UIView
,所以只需调用:[yourSeparator setBackgroundColor]
。 - user1744056cellForRowAtIndexPath
会为每个单元格调用。因此,您可以在那里放置一个条件:if(cellYouWantToBeWithSeparator){show separator} else {don't}
。 - user1744056UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];/// change size as you need.
separatorLineView.backgroundColor = [UIColor grayColor];// you can also put image here
[cell.contentView addSubview:separatorLineView];
设置分隔符样式为无,请使用:
tableView.separatorStyle=UITableViewCellSeparatorStyleNone
如果您试图更改分隔线的颜色,则有一件事是,如果您想将相邻的单元格作为单个单元格,则这不是正确的方法。因为这只会使UI发生变化。
更好的方法是调整单元格的大小,以便您可以为它们获取“单个单元格点击事件”。
您可以使用代理来实现此目的:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
UIView
并将其添加到单元格的contentView
底部。不要在想要隐藏它的单元格中添加它。 - TheTiger