我有一個圖像視圖的應用程序。當用戶點擊這個視圖時,我想運行一些代碼,這將改變標籤的顏色,然後隱藏這個視圖如何將事件與圖像視圖關聯?
我已經在界面中設置了一切,即出口等,但我沒有看到任何事件可用助理
任何人都可以幫助或指向一個很好的教程方向儘快請?
乾杯
保羅
我有一個圖像視圖的應用程序。當用戶點擊這個視圖時,我想運行一些代碼,這將改變標籤的顏色,然後隱藏這個視圖如何將事件與圖像視圖關聯?
我已經在界面中設置了一切,即出口等,但我沒有看到任何事件可用助理
任何人都可以幫助或指向一個很好的教程方向儘快請?
乾杯
保羅
你不應該使用的形象圖對於這一點,你應該使用一個UIButton。 ImageViews主要用於顯示,不允許進行交互(這就是默認情況下,它們的userInteractionEnabled標誌爲OFF的原因。)
查看UIResponder的文檔 - 所有UIViews(包括UIImageView)都從它繼承。反過來,UIResponder定義了一組可以覆蓋的方法來處理您正在查看的事件類型。首先通過繼承UIImageView(稱爲MyImageView),然後覆蓋touchesEnded:withEvent:
方法。
正如Ben Gottlieb所說,然而,這可能是對UIKit框架的濫用 - 只要確保您創建的用戶交互是合理的,並符合良好的UI實踐。
我最後一次需要做到這一點,我只是用了一個按鈕。您可以隨時設置突出顯示的狀態,以便在有人點擊時不會突出顯示,如果這正是您想要避免的。
請注意,UIControl中實現了更高級別的UI「操作」,因此如果您只需要跟蹤「Touch Up Inside」等操作,那麼可以避免事件層,在Interface Builder中創建UIView,然後將該類更改爲UIControl。然後,您應該能夠使用連接檢查器並將任何控制操作連接到任何設備。
如果您將視圖放置在UIControl中並且子視圖的「用戶交互已啓用」未選中(即禁用了用戶交互),那麼在UIControl中點擊等就忽略這些並進入UIControl。所以如果你需要出於某種原因,另一種方法是創建一個UIView,將該類更改爲UIControl,然後在通用UIControl視圖中放置一個或多個UIImageView,UILabels或任何你想要的東西。然後你可以從通用的UIControl獲得動作,就好像所有的東西都不在裏面一樣。