当我正在学习iPhone API时,我正在使用的这本书让我尽可能地使用Interface Builder。我们(有时候很孤独)也在编写代码,但我真的觉得我已经很好地了解了Interface Builder。
我知道Interface Builder与其他GUI Builders不同,因为它使用序列化对象而不编写代码。这应该是一件好事。那么......在日常工作中,它是选择的工具,还是我应该试图克服对Interface Builder的依赖?
另外:如果你建议“这取决于你在做什么”,它依赖于什么?我该如何决定是否使用Interface Builder?
注意:这个问题的主观和论证版本标题为 Interface Builder:Serious Tool或Just For Kids?但我决定反对它,因为我想避免让问题结束。
答案 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的新手}
这里的源代码和二进制应用程序 http://www.mediafire.com/download/9ph1zs1kyag9f1g/TestDifference_IB-Programmatically.zip
答案 2 :(得分:3)
界面构建器非常棒。使用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中的运行时耦合使这一切成为可能。我没有任何其他语言可以真正实现。