2017-07-07 53 views
0

想象一個透明的框架,就像一個圖像框架,一個UIImageview和一箇中間的文本視圖。UIGesture忽略所有透明區域

用戶看到一個框,並在中間的文本,但如果他試圖摸文,他認爲他碰的內容,但他可能會接觸到框架,如果是Z位置是在頂部

我正在尋找一種方法來從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

相關問題