在.xib文件中创建的UIButton的IBAction或[UIButton addTarget:action:forControlEvents:]?哪种方法更好?

时间:2012-07-13 11:31:43

标签: iphone ios ios5 interface-builder uibutton

如果我们使用Interface Builder在.xib文件中创建UIButton,最好的方法是什么?使用IBAction方法定义其Action方法和所需的Control事件是否更好,或者我们应该使用

[UIButton addTarget:action: forControlEvents:] 

定义Action方法的方法?

哪种方法更好,为什么?

3 个答案:

答案 0 :(得分:0)

取决于用户使用哪一个。 使用xib可以更轻松地编写许多代码。

答案 1 :(得分:0)

虽然可以使用两者中的任何一个。我认为它应该是IBAction的唯一原因是因为你使用了xib。通过这种方式,您知道您创建的所有内容都来自xib。但再一次,两者都很好。

答案 2 :(得分:0)

是。你可以用任何方式。

这两种方法都以您现有的eventreporter程序开头。你会添加一个简单的 UIButton使用Interface Builder。将按钮放在页面底部的标签顶部,然后使用attributes标签将其标记为Reset。随着它的到位和定义,它可以通过两种不同的方式链接到您的程序中。

使用addTarget:action:forControlEvents:带按钮

一方面,您可能希望以编程方式向按钮添加操作。如果您在Xcode中创建了按钮,或者您在Interface Builder中创建了按钮但想要在运行时更改其行为,则可能就是这种情况。您的第一步是将按钮带入Xcode。如果您在接口生成器中创建了按钮,正如我们之前建议的那样,您需要为按钮创建一个IBOutlet,这应该是旧的。如果您没有在InterfaceBuilder中创建按钮,则可以在Xcode中执行此操作。这可能意味着使用工厂类方法buttonWithType:,它允许您创建一个圆角矩形按钮或一个特殊按钮,如信息按钮。无论哪种方式,您现在都应该在Xcode中提供一个按钮对象。

使用带按钮的IBAction

您可以将操作链接到方法的另一种方法是 一切 在InterfaceBuilder中。如果您在Interface Builder中创建了对象(如我们所建议的那样)并且您不打算在运行时更改其行为,那么这是首选。当您使用此过程时,您不需要创建按钮变成一个 IBOutlet中。它在Xcode中实际上是不可见的,这很好,因为所有你关心的是按下按钮时会发生什么。您也不会使用我们刚刚运行的有些复杂的addTarget:action:forControlEvents:方法;相反,您可以通过直观的Interface Builder方式连接东西。