我正在尝试绘制一条中间有二次曲线的贝塞尔路径。该曲线在 iPhone 8 和 XS 上运行良好,但在其他设备上没有响应(即未正确渲染)。
下面是 iPhone XS 中的曲线图(正确)
和 iPhone XR(不正确)
我尝试使用视图的约束来获取该行的中间值,但不知何故它仍然无法正常工作
这是我绘制路径的代码:
//self.viewTabBorder is the grey line, which is a uiview with 1 pixel height
override func viewWillAppear(_ animated: Bool) {
let path = UIBezierPath()
path.move(to: CGPoint(x: self.viewTabBorder.center.x - self.btnHome.frame.width + 20, y: 0))
path.addQuadCurve(to: CGPoint(x: self.viewTabBorder.center.x + self.btnHome.frame.size.width - 20, y: 0), controlPoint: CGPoint(x: self.viewTabBorder.center.x, y: self.btnHome.frame.height + 5))
path.addLine(to: CGPoint(x: self.viewTabBorder.center.x + self.btnHome.frame.size.width - 20, y: 0))
let line = CAShapeLayer()
line.path = path.cgPath
line.strokeColor = UIColor(red: 224, green: 224, blue: 224).cgColor
line.fillColor = UIColor.white.cgColor
self.view.layer.addSublayer(line)
self.viewTabBorder.layer.addSublayer(line)
}
谁能告诉我我错过了什么?非常感谢您!