应该使用NIB或iPhone中的代码创建视图吗?

应该使用NIB或iPhone中的代码创建视图吗?,iphone,uiview,uiviewcontroller,Iphone,Uiview,Uiviewcontroller,在使用Interface Builder设计视图时,是否存在性能、开发方面的缺点或优点?从我到目前为止看到的情况来看,使用XIBs生成视图非常容易。但由于我已经很久没有在iPhone上开发了,所以我只能向您介绍这篇文章,其中展示了一个转换为Objective-C代码的示例XIB 界面生成器任意一天!:) 我确信直接对视图进行编码不会显著提高性能。一个缺点是很容易错过连接插座或操作的线路,对此进行故障排除可能会很痛苦。两个积极的方面是,定位、对齐和锚定UI元素要容易得多,当手机旋转时,元素会重新

在使用Interface Builder设计视图时,是否存在性能、开发方面的缺点或优点?

从我到目前为止看到的情况来看,使用XIBs生成视图非常容易。但由于我已经很久没有在iPhone上开发了,所以我只能向您介绍这篇文章,其中展示了一个转换为Objective-C代码的示例XIB

界面生成器任意一天!:)


我确信直接对视图进行编码不会显著提高性能。

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

通常您希望使用Interface Builder;您希望通过编程接口执行此操作的原因有几个:

  • 它是创建用户界面的一种更为普遍的方式,因为它的简单性和可视性优势,而仅仅使用代码是无法轻松实现的
  • 它通过使用标记等帮助您的应用程序符合苹果公司鼓励开发人员遵循的标准,以保持iPhone应用程序的一致性和可用性
尽管如此,编程接口有时比使用Interface Builder更有利的主要原因是需要多次创建的接口元素,例如,基于Interface Builder中无法复制的变量创建
n
UIImageView
s。编程接口允许这种灵活性,在这种情况下通常效率更高

请注意,NIB/XIB也会占用内存,如果您的所有接口都放在主NIB文件中,这不仅会增加应用程序的内存使用率(对于可能不会立即需要的资源),还会增加加载时间。但是,尽管如此,解决这个问题的正常方法不是使用编程接口,而是将不同的接口元素组放在不同的NIB文件中,将立即需要的接口放在主NIB文件中,主NIB文件在应用程序启动时加载,以及在需要时加载的其他NIB文件中的其他接口元素组


简而言之,一般的方法是使用Interface Builder,除非您需要创建大量的元素,而这些元素在Interface Builder中很难处理。

就我自己而言,当我试图学习如何为iPhone开发时,我发现Interface Builder非常迟钝。你应该使用的工作流程对我来说仍然没有多大意义。对于挑剔的界面布局,界面生成器比手工编码更快

在UIViewController中以编程方式生成GUI的缺点是在MVC模式中模糊了视图和控制器之间的差异。如果可以将GUI生成保持为loadView方法,那么仍然可以在生成信息的代码和显示信息的代码之间保持适当的界限


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

永远不要看使用该工具生成NIB的代码。但是看看苹果公司的便条


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

为什么没有人提到翻译。我们有一个11个地区的项目-这将提供大量nib*(#地区)-这是不可接受的(10个UI的项目超过100个nib)。

我对iOS开发不熟悉,但不熟悉MVC模式,我不知道为什么不能将视图与ViewController分开,仍然不使用Interface Builder。我只需创建另一个类来生成视图,并在控制器的loadView方法中使用它。在这个类中,它并不真正考虑我会使用多少方法,我仍然保持M-V-C边界的强性。这听起来好吗?(可以肯定的是,我对Objc还没有那么丰富的经验:)