swift iPad表格视图不透明

Posted

技术标签:

【中文标题】swift iPad表格视图不透明【英文标题】:swift iPad Table View not Transparent 【发布时间】:2015-02-22 02:20:04 【问题描述】:

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

tableview.backgroundcolor = UIColor.clearcolor()

我尝试添加:

tableview.background = nil 

但这不起作用。

【问题讨论】:

可能您的 iPad 单元格的背景颜色默认为 whiteColor,这就是为什么您看不到它们是半透明的。 【参考方案1】:

我遇到了同样的问题。似乎在向窗口添加 UITableView 的过程中(在 willMoveToWindow 和 didMoveToWindow 之间),某些 iPad 将 table view 的 backgroundColor 重置为白色。它在不使用 backgroundColor 属性的情况下秘密地执行此操作。

当我需要彩色/透明表格时,我现在使用它作为基类来代替 UITableView...

class ColorableTableView : UITableView 
    var _backgroundColor:UIColor?
    override var backgroundColor:UIColor? 
        didSet 
            _backgroundColor = backgroundColor
        
    
    override func didMoveToWindow() 
        backgroundColor = _backgroundColor
        super.didMoveToWindow()
    

编辑:单元格的背景颜色在我的 iPad 上也以相同的方式设置为白色(即在移动到窗口期间位于表格中的单元格),所以这同样适用于它们,以免你最终得到奇数重复使用时不透明的单元格不时弹出...

class ColorableTableViewCell : UITableViewCell 
    var _backgroundColor:UIColor?
    override var backgroundColor:UIColor? 
        didSet 
            _backgroundColor = backgroundColor
        
    
    override func didMoveToWindow() 
        backgroundColor = _backgroundColor
        super.didMoveToWindow()
    

【讨论】:

【参考方案2】:

您在哪里插入该代码?我最近在子类化的 tableview 上遇到了类似的问题。将背景颜色设置为清除在 iPhone 的子类中效果很好,但在 iPad 上它仍然显示为白色。

我的解决方案是我还必须将它放在包含表格的特定 tableViewController 上的 viewWillAppear 函数中。

// myTableViewController
override func viewWillAppear(animated: Bool) 
    super.viewWillAppear(animated)
    myTableView.backgroundColor = UIColor .clearColor()

【讨论】:

以上是关于swift iPad表格视图不透明的主要内容,如果未能解决你的问题,请参考以下文章

iPad:弹出视图中的表格不滚动以显示选定的行

iPad拆分视图“缩小”表格视图

在 ipad 应用程序中增加表格视图的宽度

iPad 上的表格视图组

调整 TableView 大小时,Swift 3.0 表格单元格未填充

iPhone / iPad 表格视图仅重新加载一行而不是整个表格