繁体   English   中英

在iOS7中,MFMailComposeViewController的视图大小已损坏

[英]View Size broken in iOS7 for MFMailComposeViewController

迁移到iOS 7后,当我显示MFMailComposeViewController并关闭视图控制器时,父视图控制器似乎已上移。 这就是我介绍视图控件的方式。

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;        
[mailer setSubject:@"A Message from App"];

[self presentViewController:mailer animated:NO
                     completion:^{
                     }
];

该代码在以前的iOS中效果很好。 请帮助我了解这里的情况。 这似乎仅在iPhone上

尽管您没有提供有关应用程序的大量详细信息,但是可能发生的原因是iOS7的半透明导航栏和工具栏功能使视图的尺寸“不同”。

要进行测试,请在viewDidAppear中添加以下内容:

NSLog(@"height: %f", self.view.bounds.size.height;

在iOS7模拟器中运行它,它将返回568,但iOS6将返回455(或类似的设置,取决于您设置视图选项的方式)。

解决此问题的一种方法是返回iOS 7之前的状态栏。 您可以在您的应用程序委托中做到这一点:

if(IS_IOS_7) {
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    self.window.clipsToBounds =YES;
    self.window.frame =  CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM