iOS - 自动布局不适用于主 UIView - (内部截图)

Posted

技术标签:

【中文标题】iOS - 自动布局不适用于主 UIView - (内部截图)【英文标题】:iOS - Autolayout not working for main UIView - (screenshots inside) 【发布时间】:2013-09-03 17:41:48 【问题描述】:

在进入纵向模式时,我似乎无法让视图控制器中的主 UIView 保持相同大小。屏幕截图几乎讲述了整个故事。这适用于 iPad 和 ios 6.1、XCode 4.6。

Landscape

Portrait

这是screenshot of my constraints within XCode

看起来视图本身中的文本视图和按钮保持相同的位置和大小,但 UIView(它是视图控制器视图的子视图)不想保持相同的宽度和高度。

出于几个原因,我通过我的委托以编程方式加载此视图,这只是为了仅供参考 - 试图提供尽可能多的信息。

//set starting root view controller to login screen
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    DemoViewController *loginVC = (DemoViewController *)[storyboard instantiateViewControllerWithIdentifier:@"LoginVC"];
    self.window.rootViewController = loginVC;
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeRootVCSplit:) name:@"ChangeRootVCSplitNotification" object:nil];

我正在学习有关 AutoLayout 的所有知识,想知道是否有人可以提供帮助?如果您需要更多信息,请告诉我。感谢您的帮助。

【问题讨论】:

【参考方案1】:

你应该给视图一个固定的宽度约束和一个固定的高度约束(从菜单中,编辑器 --> PIN --> 宽度和高度也是如此),然后删除水平和垂直空间约束(离开 centerX 和centerY 约束)。

【讨论】:

非常感谢!约束有时是难以处理的。 接受

以上是关于iOS - 自动布局不适用于主 UIView - (内部截图)的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell自动布局宽度不适用于UIBezierPath

iOS - 自动布局不适用于 3.5" 屏幕

UILabel sizeToFit 不适用于自动布局 ios6

UICollectionReusableView 中的自动布局不适用于 iOS7 但适用于 iOS8

AutoLayout 不适用于嵌入式 Xib 文件

CALayer autoresizingMask 不适用于 iOS SDK?