从分组样式的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];
工作