我正在尝试了解 UIView 和 UIViewController 的角色。如果我以编程方式创建和插入 subview ,通常是从 View 或 Controller 执行此操作吗?
我真的只是想知道是否有一个约定/模式。在我的示例应用程序中,我在运行时加载 50 个图像,将它们作为 subview 添加到主视图中,然后让用户在屏幕上拖动它们。我目前正在 View 的 initWithCoder 中进行所有初始化:
- (id)initWithCoder:(NSCoder*)coder
{
if (self = [super initWithCoder:coder]) {
// load UIImageViews and add them to the subview
}
return self;
}
该 View 还实现touchesBegan/touchesMoved以允许拖动。当我尝试在 initWithCoder 中访问 [self frame].size 时,我的问题出现了,它似乎尚未初始化。这让我觉得我可能将图像加载到了错误的位置......
最佳答案
这取决于你在做什么。如果 View 表示“打包”的内容,那么您可以从 View 本身创建 subview 。如果您只是将 View 聚合在一起,那么您应该从 View Controller 执行此操作。
考虑一下传统的封装。您的 subview 在概念上是其 super View 的“一部分”,还是只是存在于绘图层次结构中?
关于iphone - UIViewController 与 UIView - 哪一个应该创建 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/280017/