gpt4 book ai didi

cocoa - .xib 文件如何转换为 UI 元素?

转载 作者:行者123 更新时间:2023-12-03 17:01:39 25 4
gpt4 key购买 nike

据我了解,MainMenu.xib 包含用于创建应用程序主菜单的 XML。我的问题是,这个文件是如何加载、读取并用于创建主菜单的?谁能帮助我理解将 MainMenu.xib 转换为 UI 中实际主菜单的代码的内部工作原理?

这是迄今为止我对整个过程的理解。

  1. MainMenu.xib 被编译为 .nib
  2. .nib 被加载到 UINib 对象中。
  3. 从这里开始,UINib 对象以某种方式用于创建主菜单。

这是我感到困惑的部分。 UINib 对象到底是如何用于创建主菜单的?

最佳答案

想象一下相反的情况:在运行的应用程序中,内存中有一个实时 View 层次结构。现在您希望允许程序在保存 UI 状态的同时终止。你会怎么做?您会以某种方式将实时 View 的所有重要属性写入磁盘;某种序列化和归档过程。

这就是 Nib 的全部:它是一堆恰好是 View 的对象的存档。 (当然,它在任何用户交互之前对 View 的“基本”状态进行编码。)正如您正确指出的那样,xib 是该存档的 XML 呈现,这使得它可以更好地与版本控制配合。

如果您在 Xcode 中查看 xib 的 XML,您会发现它由如下条目组成:

<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="161" id="KGk-i7-Jjw" customClass="LeakInfoStepsCell" customModule="LookoutEmailLeakAlert" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="320" height="170"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
...

只是 View 上各种属性的列表以及 Nib 未归档时它们应具有的值。因此,当您加载 UINib 时,它会读取这些属性并创建 View 对象,就像您在代码中手动执行的操作一样,或者通过 NSCoding 为您自己的对象执行的操作。

关于cocoa - .xib 文件如何转换为 UI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39936054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com