在swift中,我有一个UI表格视图,我将背景设置为透明背景清晰,而对于iPhone,它可以完美运行。但对于iPad,它没有,它有白色背景,不清楚。我看到了一个答案,但它并不快捷,但那也没有用。 我的iPhone代码是:
tableview.backgroundcolor = UIColor.clearcolor()
我尝试添加:
tableview.background = nil
但这不起作用。
答案 0 :(得分:3)
我遇到了同样的问题。似乎在向窗口添加UITableView(在willMoveToWindow和didMoveToWindow之间)的某个过程中,某些iPad将表格视图的backgroundColor重置为白色。它隐蔽地执行此操作而不使用backgroundColor属性。
当我需要彩色/透明表时,我现在用它作为基类代替UITableView ...
class ColorableTableView : UITableView {
var _backgroundColor:UIColor?
override var backgroundColor:UIColor? {
didSet {
_backgroundColor = backgroundColor
}
}
override func didMoveToWindow() {
backgroundColor = _backgroundColor
super.didMoveToWindow()
}
}
编辑:单元格也将我们的backgroundColor在我的iPad上以相同的方式设置为白色(即移动到窗口期间在桌面上的那些),所以同样适用于它们,以免结束奇怪的不透明细胞不时会弹出,因为它被重复使用......
class ColorableTableViewCell : UITableViewCell {
var _backgroundColor:UIColor?
override var backgroundColor:UIColor? {
didSet {
_backgroundColor = backgroundColor
}
}
override func didMoveToWindow() {
backgroundColor = _backgroundColor
super.didMoveToWindow()
}
}
答案 1 :(得分:0)
您在哪里插入该代码?最近我有一个类似的问题,我有一个tableview,我有子类。设置背景颜色以清除在iPhone的子类中完美运行,但在iPad上它仍然显示为白色。
我的解决方案是我还必须将它放在包含该表的特定tableViewController的viewWillAppear函数中。
// myTableViewController
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
myTableView.backgroundColor = UIColor .clearColor()
}