UIViewでBezierPaths内のタップを検出しようとしていて、containsPointメソッドへの参照が多数見つかりました。しかし、実際にViewControllerからBezierPathsを参照する方法を見つけることができないようです。UIViewでBezierPathを参照する方法
私が設定している:
class func drawSA(frame targetFrame: CGRect = CGRect(x: 0, y: 0, width: 69, height: 107), resizing: ResizingBehavior = .aspectFit, SACountries: [String: ViewController.CountryStruct])
{
let myPath = UIBezierPath()
myPath.move(to: CGPoint(x: 32.24, y: 8.61))
myPath.addLine(to: CGPoint(x: 31.99, y: 8.29))
myPath.addLine(to: CGPoint(x: 31.78, y: 8.19))
myPath.close()
}
をベジエは、次のように呼び出し、この関数の中で描かれています。メインのViewControllerで
override func draw(_ rect: CGRect)
、私は上のタップを検出するための以下の機能を持っていますUIView:
@objc func SATap(sender: UITapGestureRecognizer)
{
let location = sender.location(in: self.SAView)
// how do I call containsPoint from here?
}
ここからcontainsPointをどのように呼び出すことができますか?
実行時にbezierPathsが正しく描画されます。
パスをビューのプロパティとして保存します。 'self.SAView.myPath'でcontainsPathを呼び出します。 – Larme