2009-06-15 81 views

回答

11

通常你想使用Interface Builder;有几个原因,你为什么会想这样做了编程接口:

  • 它是创建用户界面,由于其简单,并且你不能达到视觉上的优势较为接受的方式通过简单地利用码。
  • 它可以帮助您的应用程序符合iPhone Human Interface Guidelines,通过使用苹果公司鼓励开发人员遵循的标记等来保持iPhone应用程序的一致性和可用性。

尽管如此,主要原因编程接口有时在使用Interface Builder更有利的是需要创造几次界面元素 - 例如,创建nUIImageView秒 - 基于不能是一个变量在Interface Builder中复制。编程接口支持这种灵活性,在这种情况下通常效率更高。请注意,NIB/XIB也会占用内存,并且如果所有接口都放置在主要的NIB文件中,它不仅会增加应用程序的内存使用量(对于可能不需要立即需要的资源)但会增加加载时间。然而,这个问题的正常解决方法不是使用编程接口,而是将不同的接口元素组放在不同的NIB文件中,将立即需要的接口放置在主要的NIB文件中,当应用程序启动时将其加载,以及其他NIB文件中的其他界面元素组,在需要时加载。

简而言之,一般的做法是使用Interface Builder,除非需要创建可变数量的元素,而这些元素不易在Interface Builder中处理。

2

一个缺点是很容易错过接线插座或操作,并且排除故障可能会很痛苦。两个积极的方面是定位,对齐和锚定UI元素要容易得多,并且元素在手机旋转时重绘自己(这是一个动画过程,否则需要使用程序化元素来处理自己)。

2

说起自己,当我试图学习如何为iPhone开发时,我发现接口构建器非常呆板。你应该使用的工作流程对我来说依然没有什么意义。界面生成器比手写代码更快速,用于精美的界面布局。

在您的UIViewControllers中以编程方式生成GUI的缺点是您已经模糊了MVC模式中视图和控制器之间的区别。如果您可以将GUI生成保持为loadView方法,那么您仍然可以在生成信息的代码和显示信息的代码之间保持良好的边界。

简而言之:我更喜欢通过在UIViewController子类中重写loadView来生成GUI。

+0

我是新来的iOS开发,但不是MVC模式,我不知道为什么你不能保持独立于ViewController的视图,仍然不使用Interface Builder。我只需创建另一个类来生成视图并在控制器的loadView方法中使用它。在这个类中,它并不真正考虑我将使用多少种方法,我仍然保持M-V-C边界的强大。这听起来不错吗? (我还没有与Objc的经验确定:) – 2011-06-19 18:41:53

-1

不要看使用该工具的NIB的代码生成。但看看苹果的说明。

注意:虽然可以在不使用nib文件的情况下创建Objective-C应用程序,但这样做非常少见,不建议使用。根据您的应用程序,避免使用nib文件可能涉及覆盖大量的框架行为,以获得与使用nib文件相同的结果。

1

为什么没有人提到翻译。我们在11个语言环境中有一个项目 - 这会给出一些笔尖*(#语言环境) - 这是不可接受的(对于10个UI项目,超过一百个笔尖)。

相关问题