如何以编程方式创建控制器和 UIView 而不使用界面构建器? [关闭]

Posted

技术标签:

【中文标题】如何以编程方式创建控制器和 UIView 而不使用界面构建器? [关闭]【英文标题】:How to create the controller and the UIView programmatically and not use the interface builder? [closed] 【发布时间】:2011-04-25 13:36:00 【问题描述】:

我正在尝试学习一些有关在 ios 上创建视图和视图控制器的基础知识。我遇到的所有示例和文档都使用 Interface Builder 和 NIB 文件来创建 UIViewControllers 和 UIViews。如何以编程方式创建控制器和 UIView 而不使用界面生成器?

【问题讨论】:

【参考方案1】:

你可以这样做,这是肯定的。但是你应该看到这里的利弊;

您在代码中创建和管理所有内容,不是吗?

这意味着,您将自己保留/释放所有内容。 您将编写大量样板代码,只是为了创建具有不止一层组件层次结构的复杂视图。 您不会看到可以更改的属性,而是需要查看每个组件的类参考文档。 您需要经常使用像素值,我无法强调这个“很多”最终会持续多久。

因此,考虑 Interface Builder,将所有内容分开,然后根据需要绑定它们会更容易。随着应用程序变得成熟,代码维护在后期阶段更为重要。

我已经经历了这两种方式,我对 Interface Builder 的投票是 +1,并且仅在需要时才覆盖内容。实际上,这不到您 UI 开发时间的 5%。

【讨论】:

【参考方案2】:

简短的回答是肯定的,当然您可以通过编程方式创建视图和视图控制器。

作为我刚开始时也有同样感觉的人,让我传授一点智慧:在您对自己的身份有更多了解之前,请不要尝试从项目中删除所有 .xib 文件做!

有一些教程介绍了如何从项目中完全删除 .xib 文件,并删除对 MainWindow.xib 的依赖。根据我的经验,这绝对不值得你花时间。只需将 .xib 文件留在资源文件夹中,将其关闭并假装它们不存在。

最终,您甚至可能会很高兴他们还在那里。

【讨论】:

我在商店里有几个应用程序,我对每个项目做的第一件事就是删除所有 xib 文件。设置主窗口可能只需要 5 行代码,优点是您知道项目中发生了什么。 我想我的商店里还有一个没有任何 .xib 文件的应用程序。然而,我最近实际上一直在使用它们,现在相信它们有自己的位置。但是我在这个答案中的建议是针对初学者的。一旦你认为你或多或少知道你在做什么,绝对可以随意删除它们。学习如何这样做实际上是了解更多关于如何设置苹果默认模板的好方法。 我认为不使用 xib 文件对初学者来说是一种更好的方法,因为您可以查看和调试代码中实际发生的情况。【参考方案3】:

是的,

您可以通过编程方式创建 UIViewController 和 UIView,

UIViewControllerUIView 参见Apple 文档,有很多以init 开头的函数,用于以编程方式创建。

建议您花一些时间阅读文档。

【讨论】:

您的链接已损坏 8 年...现在已修复。

以上是关于如何以编程方式创建控制器和 UIView 而不使用界面构建器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Objective-C 以编程方式使我的 UIView 可水平滚动?

如果使用自动布局以编程方式创建 UIView 会延迟显示

可以使用自定义 UIViewController 但没有自定义 UIView 类来实现手势识别吗?

以编程方式获取导航栏的高度

如何以编程方式向以编程方式创建的 UIView 添加约束?

以编程方式创建具有多个标签的 UIView