我试图围绕UIViews和UIViewControllers的角色.如果我以编程方式创建和插入子视图,通常是从视图还是控制器执行此操作?
我真的只是想知道是否有一个约定/模式.在我的示例应用程序中,我在运行时加载了50个图像,将它们作为子视图添加到主视图中,然后让用户将它们拖动到屏幕上.我目前正在视图的initWithCoder中进行所有初始化:
- (id)initWithCoder:(NSCoder*)coder { if (self = [super initWithCoder:coder]) { // load UIImageViews and add them to the subview } return self; }
该视图还实现了touchesBegan/touchesMoved以允许拖动.当我尝试在initWithCoder中访问[self frame] .size时出现问题,它似乎尚未初始化.这让我觉得我可能会把图片加载到错误的地方......
这取决于你在做什么.如果视图表示"已打包"的内容,则您可以从视图本身创建子视图.如果您只是将视图聚合在一起,那么您应该从视图控制器中进行聚合.
想想传统的封装.您的子视图在概念上是其超级视图的"组成部分",还是仅仅存在于绘图层次结构中?