1. 程式人生 > ios > 將事件傳遞到iOS Objective C中的另一個物件

【ios】將事件傳遞到iOS Objective C中的另一個物件

我有一個全屏UIScrollView,它基於當前滾動位置執行自定義操作。在放置在它上面但不在同一層次結構中的一層上,我有一個UIImageView,它具有一個輕擊手勢識別器,可將控制傳送給給定的選擇器。

我的目標是:

  • 如果使用者點選UIImageView,則點選手勢識別器將執行選擇器(發生這種情況)
  • 如果使用者在螢幕上的其他位置向上或向下滑動,則UIScrollView委託將執行其魔力(這也會發生)
  • 如果使用者從UIImageView啟動滑動(滾動),則事件將傳遞到UIScrollView(這不會發生)

  • 我知道,如果UIImageView是UIScrollView的子檢視,則可以實現,但是我想避免這種情況,因為UIImageView並不是要滾動UIScrollView的內容。無論如何,我可以將“滾動”觸控事件從UIImageView傳遞到UIScrollView物件,而又不使其成為滾動檢視的子檢視嗎?

    解決辦法

    您可以在影象檢視點選手勢識別器上使用requireGestureRecognizerToFail:傳遞滾動檢視的平移手勢識別器。僅當滾動檢視的手勢識別器不接受事件時,才應啟用輕擊手勢識別器。