用笔尖或代码设计iPhone界面?

时间:2009-11-29 22:12:27

标签: iphone objective-c ios xcode interface-builder

我一直在思考这个问题......

一方面,Interface Builder提供了一种非常简单的方法来设计界面,并将元素与代码中的对象连接起来。

另一方面,在较大的项目中,Interface Builder变得很难维护。

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:17)

我曾经强烈反对在我自己的项目中使用Interface Builder。这是由于许多因素造成的。当iPhone SDK重新开始测试时(2008年3月左右),我开始使用Xcode工具,因为我不是来自Mac Cocoa背景,所以我对使用它有点不熟悉。这不是我最初拒绝用于iPhone开发的IB的主要因素,但在最初的iPhone SDK beta期间,用于iPhone开发的Interface Builder确实很糟糕,并且使用起来很痛苦。

然而,这个故事与今天的iPhone SDK有很大不同。虽然仍然有一些恼人的IB错误,但我对使用Interface Builder的态度已经接近完成了180˚。我发现,在你的项目中使用Interface Builder通常是个好主意。它现在是一个很棒的工具,你应该利用它。

现在,不要误解我的意思 - 我仍然坚定地认为你应该能够使用代码单独在Interface Builder中实现任何,我认为能够这样做是非常宝贵的。不要将Interface Builder用作拐杖 - 最终你只会伤害自己(以及你的生产力或产品质量)。虽然IB的拖放效果非常适合您需要做的90%,但是当您有自定义实现的东西只能在代码中完成时,您可能希望您遵循或感谢遵循这个建议。我很幸运地厌倦了IB足够长的时间,我自学了如何单独用代码完成所有工作,然后将这些知识应用到IB。

修改
为了解决NIB与代码相比缺乏可重用性(感知或真实)......您将无法实现在Interface Builder中大量重用的东西。您无法在IB中真正进行自定义控件或视图,因此排除了这种情况,并且在大多数情况下,您将实现为满足特定目的而构建的视图控制器子类。当然,您应该始终努力使您的代码和相关资源尽可能可重用。这可能包括设计注意事项,以确保您不会不必要地复制非常相似的视图控制器子类。

答案 1 :(得分:8)

使用构建器可以释放您需要维护的代码,并且维护更好的代码就越少。

IB构建的布局确实需要一些维护,但它是一个标准工具,有自己的文档和自己的在线支持(论坛,列表等)。如果其他人需要跳入您的代码,您几乎可以保证他们有IB的经验,但不一定是您的特定布局构建方式。

答案 2 :(得分:7)

答案 3 :(得分:2)

界面构建器非常适合某种程度的复杂性。对于或多或少复杂的事情,我宁愿在代码中这样做。

如果你有一个不会以多种方式使用的界面,有几个但不是很多元素,并且不需要任何棘手的布局,那么IB很棒。

从长远来看,我几乎从不使用IB。这与我作为个人偏好的项目的性质一样多。肯定有一些接口可以直接用于IB,但我不需要在一段时间内创建其中一个。