为了账号安全,请及时绑定邮箱和手机立即绑定

UIViewController返回无效框架?

UIViewController返回无效框架?

iOS
缥缈止盈 2019-11-05 15:31:59
当我在landscape模式下启动ViewController时(调用viewDidLoad之后),我打印出帧,这反而给了我纵向模式的帧大小。这有什么建议吗?- (void)viewDidLoad{   [super viewDidLoad];   NSLog(@"%@", NSStringFromCGRect(self.view.frame));   // Result is (0, 0 , 768, 1024)}
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

这是一个干净的解决方案。


我遇到了同样的问题,因此我坚持在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;

}


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 407 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信