Kju*_*uly 186 cocoa-touch objective-c ios ios7
我已经实现了一个继承自己的自定义表视图单元类UITableViewCell.tableview包含一个背景图像,所以我希望单元格的背景是透明的.它在iOS7之前看起来很棒.
但是,在iOS7中,单元格始终显示为白色背景.
即使对于Xcode7,2015,故事板中也存在一个错误:您必须在代码中设置单元格的背景颜色.
Kju*_*uly 383
正如Apple DOC所说(UITableViewCell类参考):
... 在iOS 7中,单元格默认为白色背景 ; 在早期版本的iOS中,单元格继承封闭表视图的背景颜色.如果要更改单元格的背景颜色,请在表视图委托的tableView:willDisplayCell:forRowAtIndexPath:方法中执行此操作.
因此,对于我的情况,要显示具有透明背景的单元格,只需要在表视图控制器中实现委托方法,如下所示:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
Run Code Online (Sandbox Code Playgroud)
请注意:正如@null所说,"......界面构建器中似乎存在一个错误......",我不完全确定它是否确实存在错误,但似乎是因为他的评论获得了多次投票.如果你使用IB,可能会出现问题.:)
Ant*_*nov 66
我调查了一下,发现单元backgroundColor是由Appearance系统设置的.因此,如果应用程序中的所有单元格都具有明确的背景,则最简单的解决方案是:
[[UITableViewCell appearance] setBackgroundColor:[UIColor clearColor]];
Run Code Online (Sandbox Code Playgroud)
即使它们具有不同的背景,清晰的颜色似乎是最方便的默认颜色.
san*_*ana 30
在返回单元格之前将其写入cellForRowAtIndexPath方法;
cell.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)
小智 13
UITableViewCelliOS 7中的默认背景颜色为白色.
您必须backgroundColor在代码中的某处设置属性.例如,在新创建单元格后设置它.
cell.backgroundColor = [UIColor clearColor];
Run Code Online (Sandbox Code Playgroud)
End*_*ama 13
我实际上发现问题是由于UITableView的背景颜色未设置为清除.如果您将UITableViewCell的背景颜色更改为清除并且您发现仍然看到白色,请确保将UITableView的背景颜色设置为清除(或任何您想要的颜色).
[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];
Run Code Online (Sandbox Code Playgroud)
在斯威夫特
tableView.backgroundView = nil
tableView.backgroundColor = UIColor.clearColor()
Run Code Online (Sandbox Code Playgroud)
sup*_*org 10
这绝对是一个iOS错误.在iOS 8中,设置背景颜色Interface Builder适用于iPhone,但在iPad中它总是如此whiteColor.要修复它,请在cellForIndexPath数据源消息中将其放入:
cell.backgroundColor = cell.backgroundColor
它会奏效.这正是我说这是一个错误的原因,因为代码本身几乎是蹩脚的,但它确实有效.
| 归档时间: |
|
| 查看次数: |
82075 次 |
| 最近记录: |