【发布时间】:2016-12-09 19:41:30
【问题描述】:
出于某种原因,我的UIWindow 的rootViewController 的左右边距设置为16,上下边距设置为0。不幸的是,我正在使用手动初始化所有内容的遗留(阅读:非故事板)应用程序。这会影响很多层的视图控制器,它们坚持底部边距为 0。
我在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions有这个代码
代码
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = [[UIViewController alloc] init];
[self.window makeKeyAndVisible];
UIEdgeInsets insets = self.window.layoutMargins;
NSLog(@"Left %f, Right %f, Bottom %f, Top %f", insets.left, insets.right, insets.bottom, insets.top);
insets = self.window.rootViewController.view.layoutMargins;
NSLog(@"Left %f, Right %f, Bottom %f, Top %f", insets.left, insets.right, insets.bottom, insets.top);
产生以下输出
2016-08-03 18:10:24.280 app[426:182429] Left 8.000000, Right 8.000000, Bottom 8.000000, Top 8.000000
2016-08-03 18:10:24.280 app[426:182429] Left 16.000000, Right 16.000000, Bottom 0.000000, Top 0.000000
编辑
我终于发现这是预期的行为。但是,当我推送一个新的 UIViewController 时,我很惊讶没有添加底部边距。这是预期的行为吗?我不应该期望在 iOS 中有底边距吗?
【问题讨论】:
标签: ios uiviewcontroller autolayout uiwindow rootview