我被告知永远不要覆盖-(UIView *)view
。为什么不?我想为自定义UIViewController
使用自定义UIView子类。有什么更好的方法呢?
答案 0 :(得分:3)
你不应该覆盖-view
。要完成所需的行为,可以将视图控制器设置为从笔尖加载,也可以覆盖-loadView
方法。在后一种方法中,您可以创建所需的任何视图,并将其分配给self.view
。
答案 1 :(得分:1)
如果您正在使用笔尖或故事板,只需将根视图的类设置为新的自定义UIView
子类。如果您没有使用nib或情节提要板,请在-loadView
方法中创建自定义子类,并将视图控制器的view
属性设置为它。因此,例如,如果您有一个名为UIView
的自定义MyView
子类,并且您在代码中创建它(不是在笔尖或故事板中),那么您可以执行以下操作:
// This code sample assumes compiling with ARC
- (void)loadView
{
// You should adjust the initial frame to be whatever's appropriate for this
// view controller
MyView* view = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 360, 480)];
[self setView:view];
}