分组UITableView中的透明背景 - iPhone

时间:2010-03-07 12:41:15

标签: iphone uitableview background transparency

我想让分组的UITableView透明化。我部分成功地使用以下代码:

UIColor *bgColor = [[UIColor alloc] initWithWhite:1 alpha:0.0];
historyTable.backgroundColor = bgColor;

不幸的是,圆形单元格中出现黑角。如何摆脱它们?

Before http://i49.tinypic.com/2iaa05u.jpg After http://i45.tinypic.com/2cnvckk.jpg

4 个答案:

答案 0 :(得分:38)

而不是使用

UIColor *bgColor = [[UIColor alloc] initWithWhite:1 alpha:0.0];
historyTable.backgroundColor = bgColor;

只需使用:

historyTable.backgroundColor = [UIColor clearColor];

这也清除了你正在创建的内存泄漏。

答案 1 :(得分:35)

删除UITableView backgroundView

xxx.backgroundView = nil;

这在iPad版本中是必需的。编译为在iPad和iPhone上运行时,请检查tableView是否响应选择器...

if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
    [self.tableView setBackgroundView:nil];
}

答案 2 :(得分:8)

对我来说,在将两者设置为nil / clear后,它最终完成了工作:

[myTableView setBackgroundView:nil];
[myTableView setBackgroundColor:[UIColor clearColor]];

答案 3 :(得分:3)

我有这个问题,发现使用之间没有区别:

[[UIColor alloc] initWithWhite:1 alpha:0.0];

并使用:

[UIColor clearColor];

我尝试了这两个并且在我的桌子视图上仍然有小黑角。

我也尝试按照建议将backgroundView设置为nil,但这也不起作用。

我通过在cellForRowAtIndexPath方法中将单个单元格的背景设置为透明来解决此问题:

cell.backgroundColor =  [UIColor clearColor];

当然,这有副作用,你的细胞本身是透明的,这对每个人来说并不理想,但在这种情况下对我来说没问题。