我正在为我的UIView设置一个虚线边框,该边框正在iPhone 6,7,8中得到应用。但是,如果在iPhone XR中打开,它就会像这样。
我的视图被命名为camerauiview
我通过在viewdidload()中调用边框来设置此边框。
func setupBorder(){
let dashedborder = CAShapeLayer()
dashedborder.strokeColor = #colorLiteral(red: 0.4076032743, green: 0.1454663677, blue: 0.9795397903, alpha: 1)
dashedborder.lineWidth = 2
dashedborder.lineDashPattern = [7 , 7]
dashedborder.frame = camerauiview.bounds
dashedborder.fillColor = nil
dashedborder.path = UIBezierPath(rect: camerauiview.bounds).cgPath
camerauiview.layer.addSublayer(dashedborder)
}
作为参考,我将背景色设为灰色只是为了展示其覆盖的面积。
答案 0 :(得分:0)
使用func viewDidLayoutSubviews()
当视图控制器的视图的边界改变时,视图将调整其子视图的位置,然后系统调用此方法。但是,调用此方法并不表示该视图的子视图的各个布局已调整。每个子视图负责调整其自己的布局。
视图布局子视图后,您的视图控制器可以重写此方法以进行更改。此方法的默认实现不执行任何操作。
使用func setupBorder()
覆盖func viewDidLayoutSubviews()方法,例如:
override func viewDidLayoutSubviews() {
setupBorder()
}