2016-11-14 66 views
0

關於UIView的的userInteractionEnabled財產,什麼蘋果的醫生說是:的UIView的userInteractionEnabled財產

...當設置爲NO,用戶事件 - 比如觸摸和鍵盤用於 的觀點被忽略和刪除事件隊列。當設置爲YES ,事件被傳遞到通常的觀點...

所以我有兩個UIView情況下,ABBA子視圖,既有userInteractionEnabledYES默認。

現在我設置B - 子視圖的userInteractionEnabledNO,而A的是YES,具有一定的姿態加入到A到一些用戶事件作出響應。

如果我點擊屏幕,根據蘋果文檔,這tap event將被忽略B - 子視圖,因爲它的userInteractionEnabledNO

但爲什麼這tap event將「從事件隊列中刪除」?我認爲A仍然可以根據responder's chain來捕獲此事件。如果事件從事件隊列中移除,A如何捕獲此事件?

簡而言之,我想知道每個UIView實例是否有自己的事件隊列?

如果沒有,爲什麼一個視圖的超級視圖可以在事件隊列中刪除一個視圖的超級視圖後捕獲一個tap事件?

或者蘋果在文檔中提到event queue是什麼意思?

+0

你要問一個會獲得觸摸事件或正在發生的事情背後的iOS的內部機制? – mkeremkeskin

+0

@mkeremkeskin我的意思是因爲事件將被刪除爲什麼A會得到它? – Boris

+0

正如我以爲你問的是iOS的內部機制。在實踐中,觸摸事件將從子視圖B中移除,但超級視圖A仍將獲得它們。如果您禁用A,則所有視圖都將停止監聽觸摸事件。我認爲問題是Apple Doc不夠清楚。你也可以查看這個鏈接http://www.programering.com/a/MjM4cjMwATE.html – mkeremkeskin

回答

0

我認爲關鍵在於「爲視圖而設計的視圖被忽略並從事件隊列中移除」。如果您查看Event Delivery: The Responder Chain的Apple文檔,則很明顯,例如,輕擊事件會沿着該視圖的響應者鏈向前傳播,直到系統找到可處理它的對象。

原意爲觀點,我會看到一個(touchUpInside事件例如在一個UIButton)

+0

我想知道蘋果公司在文檔 – Boris

+0

中提到的'event queue'是什麼意思。對不起,我誤解了你的問題。我更新了我的答案,但它可能不會回答你所有的問題,但我希望它能說明一些問題:-) –

+0

如果你檢查我的帖子,我已經提到了'響應者鏈',我對它很熟悉,但在我看來'這個活動被刪除「會與」響應者鏈「發生衝突。 – Boris