我正在研究这个项目,故事板上有一个场景。
场景是一个TableViewController。
表视图有一个自定义原型单元格(链接到CustomCell.swift)。
现在,我希望在我的自定义视图上绘制的内容在视图大小更改时更改,以便在设备旋转时将其调整为新的单元格宽度。由于受到限制,CustomCell的框架将在设备旋转后更改大小时更改。为了检测这个,我向CustomView.swift添加了两个属性观察器:
override var frame: CGRect {
didSet {
print("Frame was set!")
updateDrawing()
}
}
override var bounds: CGRect {
didSet {
print("Bounds were set!")
updateDrawing()
}
}
运行项目时,第二个观察者在旋转设备时工作正常。第一个观察者没有。我的问题是为什么第一个观察者没有检测到帧已经改变了?
答案 0 :(得分:2)
.frame是根据视图(和变换)的.bounds和.center计算的,所以它不会改变。为了对旋转做出反应,重写(从iOS8开始):
Java