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表格视图不透明的主要内容,如果未能解决你的问题,请参考以下文章