iOS - 从 XIB 文件中引用和以编程方式移动视图

Posted

技术标签:

【中文标题】iOS - 从 XIB 文件中引用和以编程方式移动视图【英文标题】:iOS - referencing and programmatically moving a view from an XIB file 【发布时间】:2016-10-26 21:41:00 【问题描述】:

我正在使用 Xcode 8 并处理旧的 .xib 文件,需要弄清楚如何以编程方式移动所有对象。问题:

    如何以编程方式引用视图(红色箭头所指)? 假设我可以引用视图,以编程方式移动它是否也会相对移动其中包含的四个按钮和标签?

这是 .xib 文件的视图层次结构的屏幕截图:

通常,我会在一个单独的 .xib 文件中创建一个 UIView 对象,其中包含问题 #1 中的视图内容,并将其添加到上面引用的 .xib 文件中,但这是现有代码,我想尽量减少更改,如果可能。

【问题讨论】:

【参考方案1】:

假设您有一个用于此故事板的视图控制器,请按住 Option 键并单击您的源文件以在助手编辑器中打开它。从文档大纲(箭头指向的位置)按住 CTRL+拖动到源文件中您希望插座出现的位置,Xcode 将为视图创建一个 IBOutlet。

如果您的问题是您是否可以在没有视图控制器的情况下仅从情节提要中加载视图。我想你可以实例化视图控制器,对视图进行强引用,从其父视图中删除视图,然后丢弃视图控制器,但这似乎有点浪费;在这种情况下,我会将视图复制并粘贴到它自己的 nib 中。

请注意,就移动视图而言,是的,它将移动其所有子视图。如果这是一种临时动画,请考虑使用 .transform 属性以及其中一种 UIView 动画方法。您还可以 CTRL+拖动界面生成器中的约束并在代码中操作约束。如果您使用约束,则应避免手动设置框架/中心,否则自动布局将与您发生冲突。

【讨论】:

呃!谢谢,乔希!完全忘记了我可以按住 ctrl 并拖动视图。

以上是关于iOS - 从 XIB 文件中引用和以编程方式移动视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS:从 UIView 创建 XIB

使用 Storyboard id iOS 以编程方式调用视图控制器

如何以编程方式从 iOS Swift 3 中的 XIB 推送和呈现给 UIViewController

对故事板和以编程方式推送 ios Objective C 感到困惑

尝试以编程方式从一个 XIB 文件创建多个视图

JSF 2.0 在整个会话中从浏览器和以编程方式设置区域设置 [重复]