在 Interface Builder 中构建 UIView

Posted

技术标签:

【中文标题】在 Interface Builder 中构建 UIView【英文标题】:Build a UIView in Interface Builder 【发布时间】:2011-01-19 03:43:47 【问题描述】:

关于这个话题有类似的帖子,但我的情况似乎有点不同。话虽如此,感觉它应该是一个需要克服的常见问题。

我有一个视图控制器 (StatsViewController),此时它有一个空白的 UIScrollView。我想做的是创建一个自定义 UIView 类,并使用 Interface Builder 对其进行布局,然后让 StatsViewController 多次使用此视图。但目前是未知次数。基本上,StatsViewController 将从 Web 服务中提取一些 JSON,循环通过服务,并且对于每个“循环”,我想使用我的自定义 UIView 实例化一个新视图并将其添加到 StatsViewController 中的 UIScrollView。

我的问题是当我在界面生成器中创建 UIView 时,我无法弄清楚如何通过循环使用 nib 实例化它。我读到你使用笔尖加载视图控制器,而不是普通的 UIView ......但同时,我读到你不能(或不应该)嵌套 UIViewController,所以我很茫然。

如果我在 Interface Builder 中创建自定义视图,如何在同一个视图控制器上多次实例化它?

【问题讨论】:

【参考方案1】:

每个视图都是它自己的对象。如果将每个存储到数组中,则可以通过数组访问每个视图。这将允许您使用一个控制器来控制它们。

不,你用笔尖加载器加载笔尖。他们可能会描述任何东西。它不需要有控制器。

【讨论】:

【参考方案2】:

获得所需内容的一个简单技巧与在 Interface Builder 中实现 UITableViewCell 的方式相同。

在 Interface Builder 中,将文件所有者设置为 UIViewController,加载您的 nib,然后获取该视图控制器的视图。然后,您可以(只要您保留视图)摆脱 VC。

所以我建议你做的是观看 WWDC10 会话 104 的前 2/3,以了解如何实现单元重用。然后如果你想在 IB 中实现你的单元格,使用上面的方法(也有其他方法,但它们都是 hackish),你可以这样做。

【讨论】:

以上是关于在 Interface Builder 中构建 UIView的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 的 Interface Builder 中构建 UITableView 部分的标题视图?

使用 Interface Builder 构建的自定义 UIView 可通过 Interface Builder 访问/定位

在 Interface Builder 中更新 UIView 类

Interface Builder 中的“查看方式”问题

如何在 Interface Builder 中获取 iPhone,而不是 iPad 视图

iOS Update Interface Builder视图框架基于约束