在iOS7中查看MFMailComposeViewController的大小

时间:2013-09-19 16:26:02

标签: ios ios7

迁移到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

2 个答案:

答案 0 :(得分:0)

虽然您没有提供有关您的应用的大量详细信息,但可能发生的情况是由于iOS7的半透明导航栏和工具栏功能导致视图的尺寸“不同”。

要对此进行测试,请在viewDidAppear中添加类似内容:

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

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

答案 1 :(得分:-1)

解决问题的一种方法是返回iOS 7之前的状态栏。你可以在你的app delegate中做到这一点:

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);
}