Swift UIView“空图像”

时间:2018-03-08 00:06:55

标签: swift user-interface uiview

有人可以解释一下这两张照片之间的区别吗?

预览UIView的代码: Code with preview

没有UIView预览的代码: Code without preview 有什么不同?为什么我不能预览第二个代码示例?它只显示“空图像”....

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这似乎是Swift游乐场的“特色”(bug)。如果不使用非零帧宽和高度创建视图实例,则会得到“空图像”。

这有效:

let rect = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
rect.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
rect.backgroundColor = .green

但这不是:

let rect = UIView(frame: .zero)
// also bad: let rect = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 0))
rect.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
rect.backgroundColor = .green

请记住:

let rect = UIView()

基本上与做:

相同
let rect = UIView(frame: .zero)

因此,在使用游乐场时,如果您不想看到“空图像”,请在初始化程序中创建一个非零帧宽和高度的视图。