不使用Interface Builder创建iPhone应用程序

6

是否有不使用界面构建器编写iPhone应用程序的任何理由?

换句话说,没有使用构建器编写应用程序是否可以呢?


我希望有人在我参加的iPhone技术讲座上问了这个问题,这会为我节省大量时间来处理IB。 - Chris McCall
4个回答

9

个人而言,我的应用程序内部不使用NIBs,但这更多是我开始开发的方式而不是其他什么原因。我从做Mac开发转变到了iPhone,当第一个beta SDK发布时,我几乎每天都使用Interface Builder。起初,没有Interface Builder,即使它出现了,你也不能在iPhone上做很多事情,所以我从来没有花时间真正了解它。这更多是我熟悉的做法。

Jeff LaMarche在他的文章“Don't Fear the Interface Builder”中提出了一个令人信服的论点,鼓励您在任何可以使用Interface Builder的地方使用它,并且我鼓励新开发人员先学会使用它,然后再降级到编程用户界面生成。对于使用标准元素的接口,它可以为您节省大量时间。

有些人认为使用纯编程接口可以带来性能优势,但是Matt Gallagher进行了一系列基准测试,发现这种加速通常只有5-10%左右。如果你真的想要缩短应用程序启动时间,你可能可以尝试Adrian Kosmaczewski的nib2objc,它可以从你的NIB文件生成Objective-C代码。
然而,在处理自定义视图和动画等情况下,您需要使用编程方式来操控界面。这段代码可以与Interface Builder并行存在,并不会造成太多混乱。再次强调,这更多是个人喜好问题,但我建议使用Interface Builder,因为它可以节省你的时间。

4
我从未编写过使用Interface Builder(.xib文件)的iPhone应用程序,但这只是个人口味:我喜欢应用程序完全由代码构成。
原因是如果以后需要更改某些内容,我不喜欢需要设计时工具的应用程序。这会创建一个依赖关系,可能在今天或下个月不是问题,但在3年后可能会成为问题。
所以,答案是:是的,可以编写不使用Interface Builder的iPhone应用程序。

1
那么这样做如何避免在代码中创建更深奥的依赖关系呢? - God of Biscuits

1

当然,没有使用IB编写应用程序也是完全可以的。这需要一些额外的设置(我相信您需要对Info.plist文件进行一些修改),但肯定是可行的,人们经常这样做。

个人而言,我更喜欢在大多数任务中使用Interface Builder,但通常只是为了放置基本布局(这样我就不必处理计算rect等问题)。任何进一步的自定义都可以在代码中完成。


0

如果你想的话,可以手动编辑.XIB文件。毕竟,它们是XML格式的。在项目中至少需要一个。或者,你可以通过代码创建所有的控件。据我所知,后者打字更少。

然后,有一些应用程序中,XIB文件将没有任何用处。我指的是游戏,艺术/设计因素胜过拥有本地小部件的便利性。

所以,在设计层面(没有本地小部件)和实施层面(有本地小部件,但没有接口生成器),都没问题。


可以,但是.xib文件是一个未记录的格式。它们是XML格式,因此与版本控制系统兼容。 - Dave DeLong
真的没有文档吗?我太傻了。无论如何,在代码中创建小部件是非常可行的选项。 - Seva Alekseyev
“在项目中至少有一个是不可避免的” - 实际上,您完全可以从应用程序中删除xib文件,这并不太难。请查看http://vimeo.com/3363949。 - Yetanotherjosh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接