我有一个UITableViewController,它是用分组的样式初始化的,有多个部分。对于其中一个部分,我希望它的组成单元格完全透明并且没有边框。我计划为此部分中的每一行分配一个自定义视图,但是由分组表格单元格包围的自定义视图看起来很糟糕:(
以下使单元格的背景颜色变为黑色而不是透明......我仍然不知道如何摆脱边框。
cell.backgroundColor = [UIColor clearColor];
任何指针?谢谢!
答案 0 :(得分:159)
注意:这似乎不适用于iOS7及更高版本。对于iOS7,请尝试this回答。
对于iOS6及更低版本,要从分组表格视图单元格中的单元格中删除分组背景:
这不起作用
cell.backgroundView = nil; // Did Not Work
这确实
cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
如果你已经转移到ARC (我听说这有效,但还没有测试过)
cell.backgroundView = [UIView new];
答案 1 :(得分:39)
你必须实际设置
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
删除单元格的边框。
答案 2 :(得分:37)
以下hack适用于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];
}
答案 3 :(得分:24)
这适用于具有分组样式表
[tableView setSeparatorColor:[UIColor clearColor]];
答案 4 :(得分:19)
这段代码对我有用:)
[self.tableView setSeparatorColor:[UIColor clearColor]];
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
答案 5 :(得分:2)
将单元格的backgroundView设置为nil。对于分组表,单元格图像是该视图的一部分。
答案 6 :(得分:1)
尝试使用tableView.separatorColor = [UIColor clearColor];
并且,请勿使用tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
我测试了两者,如果样式为无,则部分边框不可见不起作用,而只是更改其颜色,部分边框将显示为无。
iOS似乎区分了使对象无,并使对象透明
答案 7 :(得分:1)
cell.backgroundColor = [UIColor clearColor];
cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
答案 8 :(得分:1)
cell.backgroundView = [UIView new];
像魅力一样!经测试! iOS6的
答案 9 :(得分:1)
从iOS 8开始,将separator属性设置为none也可以。
答案 10 :(得分:0)
设置内容视图也可以摆脱边框。将自定义视图设置为cell.contentView。
答案 11 :(得分:0)
从分组样式UITableView的一部分中删除单元格边框的最简单方法:
[tableViewOutlet setBackgroundView:nil];
在viewDidLoad方法中。
答案 12 :(得分:0)
UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;
cell.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:imageView];
答案 13 :(得分:0)
如果您有自定义UITableCellView,则可以在视图中添加以下方法以删除背景视图。
- (void)setBackgroundView:(UIView *)backgroundView
{
// We don't want background views for this cell.
[super setBackgroundView:nil];
}
答案 14 :(得分:0)
我只是认为我会将我的评论转换为@Intentss为答案,因为它可能对那些人有用,使用他的解决方案。
使用带有分组UITabelView的iOS6.1,使用ARC:
[tableView setSeparatorColor:[UIColor clearColor]];
不起作用
cell.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];
可行吗