在 Interface Builder 中更新 UIView 类
Posted
技术标签:
【中文标题】在 Interface Builder 中更新 UIView 类【英文标题】:Update UIView class in Interface Builder 【发布时间】:2012-05-23 16:53:29 【问题描述】:我正在 XCode 界面构建器中构建 UI。在布置了所需的视图层次结构后,我意识到靠近层次结构顶部的视图之一应该是UIScrollView
,而不是UIView
。
有没有什么方法可以轻松地将该视图的类型从 UIView 更改为 UIScrollView 而无需使用自己的子视图层次结构重新布局所有子组件?
【问题讨论】:
【参考方案1】:据我所知,最简单的方法是右键单击相应的 .xib 文件并选择Opern As --> Source Code
。然后,您可以找到要更改的视图。它看起来像这样。
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0gr-sH-vvn">
.
.
.
</view>
改成
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0gr-sH-vvn">
.
.
.
</scrollView>
基本上,您需要将view
更改为scrollView
,当您通过界面构建器心情下的属性检查器部分更改它们时,其他属性将自动生成(右键单击.xib 文件并选择@ 987654326@)
【讨论】:
+1 这是最简单的,因为在将 UIScrollView 设置为自定义类后,接受的答案不会在检查器中显示 UIScrollView 属性。例如键盘关闭行为 我自己的经验:这会导致Xcode陷入不断崩溃的循环。所以你的里程可能会有所不同。【参考方案2】:是的,单击您要更改的UIView
。选择后,打开 Identity Inspector 窗格。
在 Identity Inspector 中,您应该会在顶部看到一个名为“Class”的字段,并且当前值(灰色)应该显示为“UIView”。
输入“UIScrollView”并按 Enter。
这会将您的 Nib 文件和我以前的 UIView
更新为 UIScrollView
。此外,如果您已经将视图连接到 IBOutlet
,请确保更新 IBOutlet
类定义,如果它不是 id
。
【讨论】:
完美!正是我想要的。 如果你想查看 ScrollView 的属性检查器,你需要像这样编辑 nib/storyboard:codenetwaves.blogspot.com.br/2012/09/… 如果您尝试,请小心使用 codenetwaves 示例。我的 Id 不合适,Xcode 清除了 Interface Builder 中的整个场景,无法撤消。以上是关于在 Interface Builder 中更新 UIView 类的主要内容,如果未能解决你的问题,请参考以下文章
xcode Interface Builder 未更新 IBDesignable 类
在 Cocoa/Interface Builder 中,单击按钮后如何清除文本字段中的文本
@IBDesignable 错误:IB Designables:无法更新自动布局状态:Interface Builder Cocoa Touch Tool 崩溃