ios - 为什么新建 UIView 类时,不能一起创建 XIB?
问题描述
如果我创建一个新的 UIViewController 类,我还可以选中Also create XIB file
.
但是,为什么当我创建 UIView 时,复选框被禁用,我必须手动创建一个 XIB 将两者(XIB 和 UIView)链接在一起?
解决方案
如果我创建一个新的 UIViewController 类,我还可以选中该框以创建 XIB 文件。但是,为什么当我创建 UIView 时,复选框被禁用,我必须手动创建一个 XIB 将两者(XIB 和 UIView)链接在一起?[强调我的。]
因为视图控制器和 nib 之间的关系与视图和 nib 之间的关系完全不同。UIView 和 nib 不会以任何神奇或重要的方式“一起”,就像 UIViewController 及其视图 nib 一样。
对于视图控制器,如果存在与视图控制器类同名的 nib,并且该 nib 中的 File's Owner 类型为视图控制器的类,并且如果 File's Owner 的
view
出口指向nib 中的顶级 UIView,视图控制器可以从 nib 自动加载其视图。这是一个复杂的安排,您是否知道如何正确配置它是值得怀疑的(即使您知道如何正确配置它也需要大量工作),因此模板提供了为您配置它的功能。这是一个标准的、重要的、自动的关系。但是有了view和nib就没有这种标准的自动关系,也没有复杂性。如果您希望某个 nib 中的某个视图属于某个 UIView 子类,您只需在其身份检查器中这么说,然后 kaboom 就完成了。所以就这样做并继续前进。
推荐阅读
- python - 需要保存没有重复同名的文件或覆盖文件名
- c++ - 在循环中使用 fgets() 从 stdin 获取字符串时,为什么会跳过元素 1?
- c# - 运行选定的编码生成器时出现错误:'包恢复失败。没有详细错误
- reactjs - React-Bootstrap 路由器
- python - 我应该为特定的 python 版本使用哪个模块版本?
- python - Pycharm自动建议不适用于电机mongodb
- django-rest-framework - 尝试从 django 数据库显示图像时的消息:“znet”属性没有与之关联的文件
- nix - 有没有办法查看在 NixOS 上构建和激活的实际计算/生成的“输出”系统配置?
- python - pipenv shell 与 pipenv 运行(带脚本)
- scala - 如何在与 Spark 相同的查询结果中使用聚合和连接?