Ios 设置UIView';loadView中的背景色无效

Ios 设置UIView';loadView中的背景色无效,ios,iphone,uiview,uiviewcontroller,ios7,Ios,Iphone,Uiview,Uiviewcontroller,Ios7,我在iOS 7应用程序中有一个UIDatePicker。它被添加到一个视图控制器(子类)中,由于背景是黑色的,所以它几乎不可读。(日期选择器需要一个浅背景。) 当然,我可以在loadView中设置日期选择器本身的背景色,这就是我最终要做的 但是我仍然不明白为什么在加载视图中设置超级视图的背景色不起作用。您可能应该在中设置背景色-视图将显示:。从for-[UIViewController loadView]: 视图控制器在其视图属性被请求但当前为nil时调用此方法。此方法加载或创建视图,并将其指定

我在iOS 7应用程序中有一个
UIDatePicker
。它被添加到一个视图控制器(子类)中,由于背景是黑色的,所以它几乎不可读。(日期选择器需要一个浅背景。)

当然,我可以在
loadView
中设置日期选择器本身的背景色,这就是我最终要做的


但是我仍然不明白为什么在
加载视图中设置超级视图的背景色不起作用。

您可能应该在
中设置背景色-视图将显示:
。从for
-[UIViewController loadView]

视图控制器在其视图属性被请求但当前为nil时调用此方法。此方法加载或创建视图,并将其指定给视图属性


我今天还没有测试过它,但我读到这篇文章是想说,当调用
-loadView
时,在您明确设置它之前,
self.view
nil
。重写
-loadView
的主要原因是自定义
UIViewController
view
属性,可能是为了使用
UIView
的特定子类,而不是泛型。

您可能应该在
-view中设置背景色:
。从for
-[UIViewController loadView]

视图控制器在其视图属性被请求但当前为nil时调用此方法。此方法加载或创建视图,并将其指定给视图属性


我今天还没有测试过它,但我读到这篇文章是想说,当调用
-loadView
时,在您明确设置它之前,
self.view
nil
。重写
-loadView
的主要原因是自定义
UIViewController
view
属性,可能是为了使用
UIView
的特定子类,而不是泛型。

您可能应该在
-view中设置背景色:
。从for
-[UIViewController loadView]

视图控制器在其视图属性被请求但当前为nil时调用此方法。此方法加载或创建视图,并将其指定给视图属性


我今天还没有测试过它,但我读到这篇文章是想说,当调用
-loadView
时,在您明确设置它之前,
self.view
nil
。重写
-loadView
的主要原因是自定义
UIViewController
view
属性,可能是为了使用
UIView
的特定子类,而不是泛型。

您可能应该在
-view中设置背景色:
。从for
-[UIViewController loadView]

视图控制器在其视图属性被请求但当前为nil时调用此方法。此方法加载或创建视图,并将其指定给视图属性


我今天还没有测试过它,但我读到这篇文章是想说,当调用
-loadView
时,在您明确设置它之前,
self.view
nil
。重写
-loadView
的主要原因是自定义
UIViewController
view
属性,可能是为了使用
UIView
的特定子类,而不是泛型。

您应该使用
-viewDidLoad
而不是
-loadView
您应该使用
-viewDidLoad
而不是
-loadView
您应该使用
-viewDidLoad
而不是
-loadView
您应该使用
-viewDidLoad
而不是
-loadView

如前所述,当访问ViewController视图属性且视图属性为
nil
时,将调用文档。如果NIB与控制器关联,则其方法将从NIB加载视图,否则将创建视图

文档还指出,如果自定义实现不应调用super,则需要创建自己的视图

self.view = [UIView new]
没有
self.view
,因为您没有调用
[super loadView],调用super将为您创建视图。但是,如果要重写此方法,则应该创建自己的视图。如文件中所述

Beter是在从NIB、情节提要或编程方式加载视图时调用的

-(void) viewDidLoad{
    self.datePicker = [[UIDatePicker alloc] init];

    [self.view addSubview:self.datePicker];

    self.view.backgroundColor = [UIColor whiteColor];
}

如前所述,当访问ViewController视图属性且视图属性为
nil
时,将调用文档。如果NIB与控制器关联,则其方法将从NIB加载视图,否则将创建视图

文档还指出,如果自定义实现不应调用super,则需要创建自己的视图

self.view = [UIView new]
没有
self.view
,因为您没有调用
[super loadView],调用super将为您创建视图。但是,如果要重写此方法,则应该创建自己的视图。如文件中所述

Beter是在从NIB、情节提要或编程方式加载视图时调用的

-(void) viewDidLoad{
    self.datePicker = [[UIDatePicker alloc] init];

    [self.view addSubview:self.datePicker];

    self.view.backgroundColor = [UIColor whiteColor];
}

如前所述,当访问ViewController视图属性且视图属性为
nil
时,将调用文档。如果NIB与控制器关联,则其方法将从NIB加载视图,否则将创建视图

文档还指出,如果自定义实现不应调用super,则需要创建自己的视图

self.view = [UIView new]
没有
self.view
,因为您没有调用
[super loadView],调用super将为您创建视图。但是,如果要重写此方法,则应该创建自己的视图。如文件中所述

Beter