如何在iOS 8中获取UIModalPresentationFormSheet的正确视图大小?

时间:2014-11-29 21:49:43

标签: objective-c ipad ios8 autolayout

我有一个视图,我在iPad上以UIModalPresentationFormSheet演示风格显示欢迎屏幕。以下是显示视图的代码。如果以前没有显示欢迎屏幕,则在我的主屏幕的viewDidLoad中调用它。

UIStoryboard *welcomeStoryboard = [UIStoryboard storyboardWithName:[NSString stringWithFormat:@"Welcome_%@", (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? @"iPad" : @"iPhone")] bundle:nil];
    self.welcomeViewController = [welcomeStoryboard instantiateViewControllerWithIdentifier:@"welcome"];

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    self.welcomeViewController.modalPresentationStyle = UIModalPresentationFormSheet;

    if(IS_OS_8_OR_LATER){
        self.welcomeViewController.preferredContentSize = CGSizeMake(540.0f, 620.0f);
    }
}

[self presentViewController:self.welcomeViewController animated:NO completion:NULL];

在iOS 7上,视图的大小正确,内容按原样流动:

Form Sheet on iOS 7

在iOS 8上,模态大小是正确的,但视图仍然认为它是全屏的。当我将视图大小写入日志时,它在viewDidAppear之后是768 x 1024(在iOS 7上为540 x 620)

Form Sheet on iOS 8

如何告诉模态视图与表单的大小相同?

0 个答案:

没有答案