我在Xcode中創建了一個空白的基於視圖的新應用程序項目。它爲它生成了一個myProjectViewController和一個nib。在該視圖控制器的那個筆尖中,只有一個視圖。我想測試一些事件處理的東西,並創建了一個 - (IBAction)方法,當我觸摸視圖時只記錄一個「hello world」。但由於某種原因,IB並沒有給我一個勾住這個行動的機會。我在那裏做錯了什麼?我也試圖把UIView作爲子視圖。當我把它拖到文件的所有者(whoose類是myProjectViewController,我在頭中有IBAction)時,甚至沒有提到IBAction。但它實際上應該,對吧?如何將IBAction方法連接到普通視圖以進行修改事件?
回答
我們有touchesBegan,touchesMoved和touchesEnded方法爲此目的。
IBAction是設計用於接收來自控件的動作的方法。它們不是界面生成器指示該方法是動作來源(該類爲響應其他事件而生成的)的指示。
要連接來自UIView子類的自定義事件,請參閱我對有關問題的回答here。您將需要使用委託/協議方法。
IBAction只是一個標籤,您添加到方法聲明中,該方法聲明將該方法標識爲連接到控件操作的候選項。
IBAction方法是接收其他控件的動作消息的方法。
UIViews不發送任何操作。 UIControls可以。所以沒有什麼可以從普通的UIView連接到你的對象。您只能將IBActions連接到UIControl子類和UIBarButtonItems。
讓您的視圖成爲UIButton的一類。這將使視圖可以鉤住。
我認爲你可以利用touchesBegan或touchesEnded方法,就像@lostInTransit建議的那樣。它是正確的方式,而不是將其視爲按鈕視圖。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// do something here
}
有一個簡單的方法來實現這一點。 轉到你的類的接口構建器>>選擇你想添加動作的視圖>>然後將它的自定義類從IDENTITY INSPECTOR從UIView更改爲'UIControl'。現在你可以添加任何IBAction方法到這個視圖。
這是董事會上最簡單的答案,它像一個魅力。應該在頂部!謝謝! – Sean 2015-10-20 17:54:39
- 1. 將佈線通用方法連接到視圖中可以嗎?
- 2. 如何將事件附加到普通類中的方法?
- 3. 如何將UIBarButtonItem連接到ViewController的IBAction
- 4. 如何從IBAction方法獲取事件
- 5. 以編程方式將事件連接到方法?
- 6. 將Tableau連接到普通Hbase
- 7. 如何將普通視圖顏色更改爲棕褐色?
- 8. 如何從OSMDROID的「普通視圖」更改爲「衛星視圖」
- 9. 如何連接到基類IBOutlet或IBAction
- 10. 如何將故事板連接到視圖控制器
- 11. 如何修改SDP以接收視頻?
- 12. 如何修改mediaStreamTrack.enabled時如何接收通知/事件?
- 13. 如何在圖像視圖上通過觸摸事件進行詳細視圖?
- 14. Laravel - 修改DB ::連接方法
- 15. 我無法連接按鈕到@IBAction
- 16. 如何通過Runnable修改事件
- 17. 無法連接IBAction查看
- 18. 如何將物化視圖轉換爲普通視圖
- 19. IBAction連接到多個UISliders
- 20. 如何在JavaScript中連接字符串數組 - 在連接時進行修改
- 21. 事件到視圖模型方法VisualStateGroup
- 22. 連接UIProgressView IBAction
- 23. 如何添加InnerXml而不以任何方式進行修改?
- 24. 您可以使用XML將視圖連接到事件處理程序嗎?
- 25. 如何將表視圖「連接」到視圖控制器
- 26. 如何在Rails中使用「render」方法渲染普通視圖文件?
- 27. iOS:如何以編程方式將視圖添加到故事板視圖
- 28. 如何將行刪除按鈕連接到我的GridView_RowDeleted事件?
- 29. 如何在VB.Net中將事件連接到事件
- 30. 將事件連接到對象的最佳方法?
-1。剛剛進行了實驗,並將視圖的類設置爲UIButton將一些「發送事件」添加到連接檢查器,您可以連接到IBActions,如此,但它也完全破壞了您的佈局。 – 2013-07-08 16:07:37