UIView的大小不是预期的

OhD*_*Doh 2 objective-c uiview ios

我无法弄清楚为什么该视图占据整个屏幕.

在AppDelegate文件中

...

self.viewController = [[[ViewController alloc]init]autorelease];
[self.window setRootViewController:self.viewController];
self.window.backgroundColor = [UIColor whiteColor];
Run Code Online (Sandbox Code Playgroud)

..

在ViewController.m中

UIView *view = [[UIView alloc]initWithFrame:CGRectMake(30, 30, 30, 30)];
[view setBackgroundColor:[UIColor greenColor]];
self.view = view;
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,屏幕完全是绿色的,而不是只有绿色的正方形.这有什么不对?

Ric*_*III 5

错误的行在这里:

self.view = view;
Run Code Online (Sandbox Code Playgroud)

当您设置一个UIViewController根控制器的视图时,它保证填满屏幕.而是将其添加为子视图:

[self.view addSubview:view];
Run Code Online (Sandbox Code Playgroud)

而你应该没事.