0

我被告知-(UIView *)view永远不要覆盖。为什么不?我想为我的自定义使用自定义 UIView 子类UIViewController。有什么更好的方法呢?

4

2 回答 2

3

你不应该覆盖-view. 要完成您想要的行为,您可以设置视图控制器以从 nib 加载,或者您可以覆盖该-loadView方法。在后一种方法中,您可以创建所需的任何视图并将其分配给self.view.

于 2012-08-20T21:06:12.780 回答
1

如果您使用的是 nib 或故事板,只需将根视图的类设置为新的自定义UIView子类。如果您不使用 nib 或情节提要,请在-loadView方法中创建自定义子类并将视图控制器的view属性设置为它。因此,例如,如果您有一个UIView名为 的自定义子类MyView,并且您在代码中(而不是在 nib 或情节提要中)创建它,您将执行以下操作:

// 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];
}
于 2012-08-20T21:05:45.373 回答