我已经创建了自定义UIView并在UIView中添加了小分隔符(1点高度)。问题是它完全适用于iPhone6和iPhone7。但是plus
版本,它不能占用其视图宽度的100%。它需要40个点来填充其视图宽度的100%。我的代码如下:
override func setup() {
backgroundColor = JBCColor.greySoft
let border = CALayer()
border.backgroundColor = JBCColor.darkGrey.cgColor
border.frame = CGRect(x: 0, y: 0, width: self.layer.frame.size.width, height: 2)
self.layer.addSublayer(border)
}
请告诉我如何修复它。感谢。
答案 0 :(得分:0)
要解决您的问题,您需要在每次查看框架更改时更新图层框架。例如,更新viewDidLayoutSubviews
中的图层框架。
class YourView: UIView {
let border: CALayer = {
let layer = CALayer()
layer.backgroundColor = JBCColor.darkGrey.cgColor
return layer
}()
override func setup() {
backgroundColor = JBCColor.greySoft
self.layer.addSublayer(border)
border.frame = CGRect(x: 0, y: 0, width: self.layer.frame.size.width, height: 2)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
border.frame = CGRect(x: 0, y: 0, width: self.layer.frame.size.width, height: 2)
}
}
有关详情,请参阅this post