迅捷的iPad表视图不透明

时间:2015-02-22 02:20:05

标签: ipad swift tableview transparent

在swift中,我有一个UI表格视图,我将背景设置为透明背景清晰,而对于iPhone,它可以完美运行。但对于iPad,它没有,它有白色背景,不清楚。我看到了一个答案,但它并不快捷,但那也没有用。 我的iPhone代码是:

tableview.backgroundcolor = UIColor.clearcolor()

我尝试添加:

tableview.background = nil 

但这不起作用。

2 个答案:

答案 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()
}