簡體   English   中英

在.xib文件中創建的UIButton是IBAction還是[UIButton addTarget:action:forControlEvents:]? 哪種方法更好?

[英]IBAction or [UIButton addTarget:action: forControlEvents:] for UIButton created in .xib file? Which is the better approach?

如果要使用Interface Builder在.xib文件中創建UIButton,更好的方法是使用IBAction方法定義其Action方法和所需的Control Event更好,還是應該使用

[UIButton addTarget:action: forControlEvents:] 

方法定義動作方法?

哪種方法更好,為什么?

取決於用戶使用哪個。 使用xib使其更容易,並且可以避免編寫許多代碼。

雖然兩者均可使用。 我看到它應該是IBAction的唯一原因是因為您使用了xib。 通過這種方式,您知道創建的所有內容都來自xib。 但是再次,兩者都很好。

是。 您可以使用任何方式。

這兩種方法都從現有的eventreporter程序開始。 您將使用Interface Builder向其中添加一個簡單的UIButton。 將按鈕放在頁面底部標簽的頂部,然后使用attribute標簽將其標簽為Reset。 安裝並定義好它之后,就可以通過兩種不同方式之一將其鏈接到您的程序中。

通過按鈕使用addTarget:action:forControlEvents:

一方面,您可能希望以編程方式向按鈕添加操作。 如果您是從Xcode中創建按鈕或在Interface Builder中創建按鈕但想在運行時更改其行為,則可能是這種情況。第一步是將按鈕帶入Xcode。 如您先前所建議的,如果您在界面生成器中創建了按鈕,則需要為按鈕創建一個IBOutlet,該按鈕現在應該已經過時了。 如果未在InterfaceBuilder中創建按鈕,則可以在Xcode中創建按鈕。 這可能意味着使用工廠類方法buttonWithType:它使您可以創建圓角矩形按鈕或一些特殊按鈕(例如信息按鈕)。 無論哪種方式,您現在都應該在Xcode中有一個button對象。

通過按鈕使用IBAction

將動作鏈接到方法的另一種方法是在InterfaceBuilder中進行所有操作。 如果您已在Interface Builder中創建了對象(如我們建議的那樣),並且您不打算在運行時更改其行為,則這是首選。使用此過程時,無需單擊按鈕進入IBOutlet。 在Xcode中它實際上是不可見的,這很好,因為您關心的只是按下按鈕時發生的事情。 您也不要使用我們剛剛運行過的有點復雜的addTarget:action:forControlEvents:方法; 相反,您可以通過直觀的Interface Builder方法連接事物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM