真ん中に二次曲線があるベジェパスを描こうとしています。曲線は 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)
}
誰かが私が欠けているものを見せてもらえますか? 事前にどうもありがとうございました!