从分组样式的UITableView部分删除单元格边框

我有一个UITableViewController初始化的分组风格,并有多个部分。 对于这些部分之一,我希望它的组成单元是完全透明的,没有边界。 我打算为此部分中的每一行分配一个自定义视图,但具有由分组表格单元格包围的自定义视图:

以下使单元格的背景颜色变成黑色而不是透明的…而且我仍然不知道如何摆脱边界。

cell.backgroundColor = [UIColor clearColor]; 

任何指针? 谢谢!

注意:这似乎不适用于iOS7及更高版本。 对于iOS7试试这个答案。

对于iOS6及更低版本,要从分组表格视图中的单元格中移除分组背景:

这没有奏效

 cell.backgroundView = nil; // Did Not Work 

这样做了

 cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 

如果你已经搬到ARC (我听说过这个工程,但没有testing过)

 cell.backgroundView = [UIView new]; 

你必须真正设置

 tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

去除细胞的边界。

下面的黑客工作在iOS 7 – 现在。 🙂

子类UITableViewCell ,并使用此单元格不应该有分隔符的部分。
覆盖您的单元格子类中的addSubview方法:

 -(void)addSubview:(UIView *)view { // The separator has a height of 0.5pt on a retina display and 1pt on non-retina. // Prevent subviews with this height from being added. if (CGRectGetHeight(view.frame)*[UIScreen mainScreen].scale == 1) { return; } [super addSubview:view]; } 

这是有一个分组样式表的工作

[tableView setSeparatorColor:[UIColor clearColor]];

此代码为我工作:)

 [self.tableView setSeparatorColor:[UIColor clearColor]]; [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 

将单元格的背景视图设置为零。 对于分组表格,单元格图像是该视图的一部分。

 cell.backgroundColor = [UIColor clearColor]; cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 

尝试使用tableView.separatorColor = [UIColor clearColor];

而且,不要使用tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

我用两种testing,如果风格是没有,使部分边框不可见不工作,而是改变它的颜色,部分边框将显示为没有。

iOS似乎正在区分使对象没有,并使对象透明

 cell.backgroundView = [UIView new]; 

奇迹般有效! 经testing! iOS6的

从iOS 8开始,将separator属性设置为none也可以。

摆脱细胞边界

设置内容视图也摆脱了边界。 将您的自定义视图设置为cell.contentView。

从分组样式的UITableView的一部分中删除单元格边界最简单的方法:

 [tableViewOutlet setBackgroundView:nil]; 

在viewDidLoad方法中。

  UIView *backView = [[UIView alloc] initWithFrame:CGRectZero]; backView.backgroundColor = [UIColor clearColor]; cell.backgroundView = backView; cell.backgroundColor = [UIColor clearColor]; [cell.contentView addSubview:imageView]; 

如果你有一个自定义的UITableCellView,那么你可以添加下面的方法到你的视图去除背景视图。

 - (void)setBackgroundView:(UIView *)backgroundView { // We don't want background views for this cell. [super setBackgroundView:nil]; } 

我只是想我会把我的评论转换成@Intentss成为一个答案,因为这可能对那些使用他的解决scheme有用。

使用iOS6.1与分组的UITabelView,使用ARC:

[tableView setSeparatorColor:[UIColor clearColor]];

不起作用

cell.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];

工作