【问题标题】:NIB/XIB files with Cocoa programming - faster development time?带有 Cocoa 编程的 NIB/XIB 文件 - 更快的开发时间?
【发布时间】:2009-03-13 01:06:49
【问题描述】:

我用 iPhone SDK 编程已经有一段时间了。

我没有使用过界面生成器。这让我有点害怕。我知道实际上我可能是在“与框架作斗争”,但我不这么认为。

我发现在我的应用程序委托中实例化我的 UITabBarController,实例化 UINavigationController,然后推送和弹出视图控制器非常容易。

当然,我对如何使用 XIB 文件构建应用程序没有广泛的了解,因为我从来没有这样做过,但是我确实知道它的一般要点,我已经使用 NIB 在 Cocoa 中构建了一些 Mac 应用程序。所以我也不是完全无知。

我的问题是在选择使用xibs制定UITableViewController和UIViewControllers时的开发时间是否存在增加,而不是编程方式实例化,然后设置IVAR。

在我看来,这两种方法仍然需要您将视图控制器子类化以进行自定义,这可能会发生在您的大多数视图中。同样,代表仍然需要手动类,从 XIB 内部连接插座的过程似乎与我设置 ivar 相当。

还是我遗漏了其他要点?

谢谢!

【问题讨论】:

    标签: iphone cocoa cocoa-touch


    【解决方案1】:

    与 IB 相比,编写代码来配置 UI 的时间要长得多。

    另外,您可以将设计交给设计师,让他们调整 UI。

    【讨论】:

    • 设计师究竟可以对 XIB 文件进行多少调整?除了调整设置选项和调整视图大小之外,我认为没有太多其他内容。在为 iPhone 设计时,这些东西甚至不会占用大量时间。
    • 你会感到惊讶。一旦他们学习了该工具,我已经看到一个优秀设计师手中的一些 XIB 文件发生了相当大的转变。另外,您不必这样做。最好的代码是不用自己写的代码!
    【解决方案2】:

    最终他们都完成了同样的事情。您应该根据具体情况使用其中一种。大多数时候编写代码来创建和定位视图,尤其是在以后维护它,将比使用 IB 花费更长的时间。不过,在一个简单的 iPhone 应用程序中,这可能不是真的,您最好在代码中创建所有内容。基本上,你应该知道如何做到这两点,并选择最清晰的代码和最快的开发路径。

    【讨论】:

      【解决方案3】:

      当您使用 IB 来实际布置视图时,它会大放异彩;即使是两个或三个视图,在代码中进行布局和配置也会很麻烦。我确实倾向于将它用于选项卡栏和导航控制器,有时用于子控制器(通常仅在我认为用户很可能使用它的情况下),但这更多是因为我已经在那里,所以我觉得它很方便。

      他们将在下周发布这个新的第 3 版操作系统,我希望 Interface Builder 能够获得它在 Cocoa 中的一些灵活性,您可以在其中为自己的类添加调色板,甚至构建复杂的非视图数据结构(通过使用自定义调色板)。不过,我们必须看看。

      【讨论】:

      • 在 layoutSubviews() 中,您可以更改代码中的 CGRect 值。在 IB 中,您可以使用表单输入框更改相同的值。对于标签栏和导航控制器,添加按钮时 - 您所做的只是设置左/右 BarButtonItem ivar。在 IB 中,您可以查看信息窗格并在那里更改按钮。
      • 只是说是的,两者都实现了相同的目标。但我遇到的真正问题是,使用其中一个是否可以缩短开发时间。我刚才给出的例子似乎需要同样多的时间来完成。
      • 我忘了一件事。在 IB 中,您可以拖动视图并排列它们并查看它们的外观,然后稍后调整它们的坐标以对其进行优化。以编程方式,您可以通过构建应用程序、查看它然后相应地更改 rect 值来完成同样的事情。同样,两者看起来很相似。
      • 我开始使用 SDK 的 Beta 2 编写 iPhone 应用程序。我的第一个应用程序仍然不使用任何 nib 文件。所以我知道我可以在 Interface Builder 中用代码做所有事情,甚至更多。我也知道这样做很麻烦。
      【解决方案4】:

      别太担心,IMO Interface Builder 也有点高估了。

      这对于快速启动和运行非常有用,或者如果您的应用程序有很多设置繁琐的屏幕,但您不会错过太多。

      【讨论】:

      • +1 以对抗路过式投票。我不同意,但你有权发表你的意见。
      【解决方案5】:

      对于您概述的用途,只需在代码中执行操作即可,甚至可能更容易理解。

      布局视图或自定义单元格...然后您会遇到大量字体/颜色/位置设置,这些设置很快就会爆发成大量代码,难以维护和调整。在这些情况下,更容易在 IB 中调整您想要的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多