在哪里定制IBOutlets

时间:2014-08-08 10:42:20

标签: ios objective-c iboutlet

我应该在哪里自定义IBOutlets

假设我已经创建了一个带有界面构建器的按钮,为它创建了一个IBOutlet,我希望在运行时更改属性(例如:背景颜色或本地化标题)。

我会考虑将其添加到viewDidLoad方法,但尚未创建出口。 我记得在viewDidLoad中有零个出口,但我可能错了。

如果我移动viewWillAppear,则每次出现视图控制器视图时都会执行代码。

我的IBOutlet相关代码是否有更好的位置,所以它只执行一次?


显然,我可以只使用界面构建器并使用User defined runtime attributes或本地化的stroryboards进行任何自定义,但我不喜欢这样,因为更改更加繁琐后面。

3 个答案:

答案 0 :(得分:1)

  

我会考虑将它添加到viewDidLoad方法,但是将其添加到outlet   尚未创建。

这是一个错误的陈述,因为您只在创建IBOutlets后才收到viewDidLoad:消息。因此,您可以安全地在viewDidLoad:

中进行任何自定义

答案 1 :(得分:1)

来自Doc

enter image description here

它清楚地说明了在-viewDidLoad()委托本身中加载到内存中的视图。

答案 2 :(得分:0)

假设你有一个想要自定义的按钮。您将按钮放在您想要的位置,然后打开右侧的“Identity Inspector”。

“自定义类”有一个文本字段:

Textfield for CustomClass

我通常会创建UIButton / NSButton的子类(取决于iOS或OSX)并编辑此类文件中的行为,绘图方法和功能。然后在此文本字段中添加此类的名称。瞧!