Nelson 寫些 iOS 開發的東東

Posts match “ Gesture-Recognizer ” tag:

解決 iOS 7 手勢失效的問題

| Comments

在開發 iOS 程式的時候,有很多機會會用到手勢偵測(gesture recognizer),或許有一個場景是這樣的:

  • 你有個 superview,裡頭有 subview,裡頭還有 sub-subview,還有 sub-sub-subview
  • 每個 view 都放了一或多個手勢偵測

我們會直覺的認為:既然 view 是一層層疊起來,那應該是最上層的手勢偵測失敗,才會傳遞到下一層手勢偵測,若是又失敗就繼續往下傳遞。

這在之前的 iOS 似乎都運作的好好的,但不知道為何,到了 iOS 7 竟然出錯了 - 有時候上層的手勢沒有被辨識到,反而是下層的手勢先被執行了!難道不是最上層的手勢先被執行嗎?我的程式碼哪裡寫錯了嗎?

這一定是 iOS 7 的 bug 啦!

很不幸的,當你認真翻閱蘋果文件時,你會發現它有說:

手勢辨識的順序是不保證的,並非越上層的手勢就會越早被辨識