iphone - UIViewController 与 UIView - 哪一个应该创建 subview ?

标签 iphone cocoa-touch

我正在尝试了解 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/

相关文章:

android - 算法在移动应用程序开发中的重要性?

objective-c - 如何重新创建 Jetsetter 的 iOS 预告片照片和照片查看器幻灯片过渡?

iphone - 在 Html 中嵌入图像并在 UIWebView 中加载

ios - 如何检测 iPhone 5c 的颜色?

iphone - UISearchbar取消按钮自定义图像

ios - 如何在用户退出时保存当前选项卡栏项目并在重新启动时重新加载到该项目?

objective-c - 初始化 NSMutableArray : [NSMutableArray array];

iphone - 如何在 MKMapView (SDK3.2) 中使用 UIPopoverController 在 iPad 上关闭 PopoverAnimated

iphone - 检查哪个请求来自 NSURLConnection 委托(delegate)

iPhone SDK : UIBarButtonItem not refreshing after Memory warning