[英]View Size broken in iOS7 for MFMailComposeViewController
[英]UIViewController view not size correctly when running iOS7 simulator
我有一个自定义UIViewController,它创建一个视图,该视图在顶部包含一个操作栏(带有4个按钮的视图),一个tableview,然后在tableview下面是另一个视图。 布局全部用代码完成,并且不使用自动布局。 一切都可以在装有iOS 7.0和7.0.2的各种设备上完美运行,但是在模拟器中,控制器的根视图固定在屏幕的右上角(0,0),而不是导航栏的下方。
我要在viewDidAppear:方法中强制中继,但是这似乎是一个hack ...
感谢您的任何见解
编辑:添加了图像。 您可以看到突出显示的UIView。 正如ManicMonkOnMac所提到的,UIView在工具栏下(但这仅发生在模拟器中,在设备上,视图排列良好)在控制器的loadView方法中,我在创建视图时设置了框架:
- (void)loadView
{
// Our parent view controller will resize us appropriately. The size set
// here is a convenience for initial view layout.
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
但是此框架稍后更改。 不过,不是通过我的代码,而是通过UIkit代码)
Edit2:添加了loadView方法主体
编辑:经过WWDC 2013的会议201之后,我认为我有解决方案。
在iOS 7中,可以在视图控制器上设置一个属性,以指定是否要通过导航栏重叠视图。
viewController.edgesForExtendedLayout = UIRectEdgeNone;//UIRectEdgeAll specifies that nav bars should overlap the view.
与iOS 6不同,导航栏位于iOS 7的视图上方。
使用不包含导航栏的框架尺寸。
码:
CGRect框架= CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y + self.navigationController.navigationBar.frame.size.height,self.view.frame.size.width,self.view .frame.size.height);
CustomView * view = [[CustomView alloc] initWithFrame:frame];
[self.view addSubview:view];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.