UIViewController返回无效框架?

当我在landscape模式下启动ViewController时(调用viewDidLoad之后),我打印出帧,这反而给了我纵向模式的帧大小。


这有什么建议吗?


- (void)viewDidLoad

{

   [super viewDidLoad];


   NSLog(@"%@", NSStringFromCGRect(self.view.frame));

   // Result is (0, 0 , 768, 1024)

}


缥缈止盈
浏览 411回答 3
3回答

慕斯王

这是一个干净的解决方案。我遇到了同样的问题,因此我坚持在frame整个应用程序中使用。我不想为根视图控制器设置例外。我注意到根视图控制器frame显示的是纵向尺寸,但是所有子视图的横向尺寸都正确。由于只有根视图控制器的行为有所不同,因此我们可以将标准的空白视图控制器设置为根视图控制器,并在其中添加自定义视图控制器。(下面的代码。)然后,您可以frame在自定义视图控制器中按预期使用。- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    // Override point for customization after application launch.    self.window.rootViewController = [[UIViewController alloc] init];    [self.window makeKeyAndVisible];    self.viewController = [[ViewController alloc] initWithNibName:nil bundle:nil];    [self.window.rootViewController addChildViewController:self.viewController];    [self.window.rootViewController.view addSubview:self.viewController.view];    return YES;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS