Я пытаюсь нарисовать путь Безье с квадратичной кривой посередине.Кривая работает хорошо на 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)
}
Может кто-нибудь показать мне, что мне не хватает?Заранее большое спасибо!