我应该何时使用Interface Builder?

时间:2010-03-02 21:54:27

标签: cocoa-touch macos interface-builder

当我正在学习iPhone API时,我正在使用的这本书让我尽可能地使用Interface Builder。我们(有时候很孤独)也在编写代码,但我真的觉得我已经很好地了解了Interface Builder。

我知道Interface Builder与其他GUI Builders不同,因为它使用序列化对象而不编写代码。这应该是一件好事。那么......在日常工作中,它是选择的工具,还是我应该试图克服对Interface Builder的依赖?

另外:如果你建议“这取决于你在做什么”,它依赖于什么?我该如何决定是否使用Interface Builder?

注意:这个问题的主观和论证版本标题为 Interface Builder:Serious Tool或Just For Kids?但我决定反对它,因为我想避免让问题结束。

5 个答案:

答案 0 :(得分:13)

Interface Builder确实用于制作应用程序。看一下任何基于Cocoa的Mac应用程序 - 大多数不是Adobe或Microsoft的应用程序 - 你会看到它充满了笔尖。在没有Interface Builder的情况下制作iPhone应用程序会更为常见(因为原始SDK不带IB),但它仍然是一种非常常用的工具。

Interface Builder与大多数其他GUI构建器之间的区别在于Cocoa和Interface Builder在设计时考虑到了彼此。事实上,如果你搜索Cocoa mailing list archives,你会发现很多人想知道如何使用Interface Builder制作一个没有的Cocoa app 。 (答案总是一样的:你可以在代码中完成所有工作,但是你只是浪费时间并且更难设计一个好的界面。)

答案 1 :(得分:4)

是的,差异很小。区别在于IB使用更多的存储和RAM内存以编程方式生成接口。这是我的简单例子。 {我是OBJ-C的新手}

enter image description here

这里的源代码和二进制应用程序 http://www.mediafire.com/download/9ph1zs1kyag9f1g/TestDifference_IB-Programmatically.zip

答案 2 :(得分:3)

如果您打算使用标准UIKit用户界面元素,

界面构建器非常棒。使用Interface Builder设计基于UIKit的用户界面还可以帮助您符合Apple iPhone Human Interface Guidelines

只有极少数情况下你不想使用Interface Builder,最明显的是那些提供独特外观的游戏。

我认为您不必担心构建“依赖于Interface Builder”。这是一个工具,就像任何其他工具一样。使用它不是依赖,它只是我们完成任务的方式。

答案 3 :(得分:3)

Interface Builder是一个很棒的工具。尽可能多地使用它。
如果你只能使用Interface Builder做一些事情,那么是时候编写混合IBOutlets和代码的代码了,或者只用代码做代码。

答案 4 :(得分:2)

Interface Builder不生成代码,它只是创建现有类的对象图。如果你看一下nib文件,你可以看到这个。它只是一个规则列表,列出了要创建的对象以及它们之间设置的关系。 nib中没有代码,各种loadFromNib方法中的代码非常少。

Objective-c中的运行时耦合使这一切成为可能。我没有任何其他语言可以真正实现。