2015-05-21 49 views
1

我希望能夠與我所做的UIControl進行交互,因此希望在我的ViewController中使用它。如何在View Controller中顯示UIControl的子類

我試過

  • 我子類UIControl(1)。
  • 然後,我添加了一個UIView到我的視圖控制器,併爲它分配了新的類(2)。

但在界面生成器中,我無法將我的插座設置爲包含在新類(1)中的按鈕?!

1:1



2:2



UIControl's documentation證明了它是的UIView的一個子類,所以我應該能夠連接插座,對不對?

我在這裏錯過了什麼? :/

+0

您是如何嘗試連接插座的?在IB中選擇WeekdayControl並轉到連接檢查器,從那裏您可以將插座連接到IB中的按鈕。 – matthias

+0

是的,這是我試圖連接它們的方式。我試圖拖放,但似乎沒有連接。 :/ – Anfaje

回答

1

關 - 當然,你不能添加IBOutlet中,因爲你加入到WeekdayControl什麼按鈕都在UIViewController,你不能添加出路WeekdayControl,按鈕只有WeekdayControl子視圖,UIViewController是老闆在這裏,你可以添加只出售到UIViewController。 (對不起,我的英文)

更好地在WeekdayControl中以編程方式創建按鈕。

+0

謝謝!這正是界面生成器101,我無法得到我的頭。 – Anfaje

1

必須首先閱讀: -

不能直接使用UIControl類實例化控制。 它反而爲它的所有子類定義了通用接口和行爲結構。

UIControl的主要作用是定義一個接口和底座 實施準備行動的消息,最初派遣 他們自己的目標時,某些事件發生

所以,你做錯了,如果你真的需要製作自定義視圖或自定義控件,然後您可以直接通過創建自定義UIView並直接將視圖連接到視圖來實現。

我認爲你缺少的子類一UIControl的目標,它並沒有給權限創建網點因爲它的UIView的一個子類,只是讀這行有什麼它在文檔中闡明: -

子類注

您可能要延長UIControl子類的兩個原因之一:

觀察或修改DISP行動消息ATCH爲 特定事件

目標要做到這一點,覆蓋sendAction:到:forEvent :,評估傳入 選擇,目標對象,或UIControlEvents位掩碼,並繼續根據需要 。

要提供自定義跟蹤的行爲(例如,改變 高亮外觀)

要做到這一點,覆蓋一個或全部下列方法: beginTrackingWithTouch:withEvent:, continueTrackingWithTouch:withEvent:,endTrackingWithTouch :withEvent :.

+0

但是我進行控制的原因是爲了解耦存儲在那裏的變量,並通過控件訪問它們。沒有控制,我的視圖控制器真的很臃腫。 :/ 我知道這可能不是最佳實踐,但我仍然不明白爲什麼它不可能?! – Anfaje

+0

你是錯的夥伴,你說「這可能不是最佳實踐」,它根本就沒有辦法創建自定義控件;) – Vizllx

相關問題