2017-07-07 11 views
0

イメージフレームのような透明なフレームをUIImageviewとし、中間にテキストビューを想定します。UIGestureはすべての透明領域を無視します

ユーザーは枠とテキストを中央に表示しますが、テキストに触れようとするとテキストに触れたと考えますが、の位置が上にある場合はフレームに触れることがあります

あなたが触れる実際のピクセルとして、GestureRecognizerからの接触を「見る」方法を探しています。

フレームが上にある場合は、ソフトウェアによってテキストがカバーされますが、ユーザーはテキストを見て触れようとしますが、代わりにフレームがフレームを受け取ります。

実際のピクセルを「追跡」、そしてあなたがそれらに彼らのコンテナとして とないを見るようにタッチにを受信する方法はありますか?

答えて

1

ジェスチャ認識機能の特定のビューで場所を指定できます。

ボタン(UIView)を含むビューがあるとします。

  • ビュー
    • マイボタン

class ViewController: UIViewController { 

    @IBOutlet weak var myButton: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     addGesture() 
    } 

    private func addGesture() { 
     let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePan)) 
     view.addGestureRecognizer(panGesture) 
    } 

    @objc func handlePan(sender: UIPanGestureRecognizer) { 
     let location sender.location(in: view) 
     for subview in view { 
      if subview.frame.contains(location) { 
       // check whether this view is what you wanted? (by tag or something else...) 
      } 
     } 

    } 

} 
+0

おかげで、私のビューは動的である、私は何の上にあることを行っているのか分かりませんそれはワーキングエリアです、あなたは物事をドラッグすることができますし、より多くのものなどを追加することができますので、あなたが何を参照してくださいに応答することができる必要がありますあなたが触ったと思う実際のピクセルを再現してください:) – Curnelious

+0

私は自分の答えを更新しました。それがあなたを助けることができるかどうかは分かりません。 – WeiJay

関連する問題