更新到Xcode 8后的布局问题

在升级到Xcode 8之后,这是我的一个屏幕之前和之后。
我所做的只是打开main.storyboard,然后在那里build立并在手机上运行我的应用程序。
在我的版本控制中,我可以看到Xcode正在对我的main.storyboard进行很多更改,只是从打开它。
每当我删除这些变化,我可以看到我在Xcode 7.3.1中看到什么。
但是,只要我重新打开界面生成器与故事板,我看到这些变化回到原地。

有什么我可以做的吗?

在Xcode 8之前

在这里输入图像描述

更新到Xcode 8之后

在这里输入图像描述

我有一个类似的问题,一旦我将故事板文件转换为Xcode8兼容,不会出现tableview图像。 这看起来像Xcode8的错误,所以直到发布错误修复程序,这是一个解决方法:

  1. 在Xcode 8中打开你的故事板,并select一个初始设备视图。 按照通常的方式进行更改。
  2. 完成更改后,select故事板 – >文件检查器 – >打开 – >select“Xcode 7.x”。

在这里输入图像描述

  1. 提示时select“保存并closures”
  2. 您的故事板更改将被保存,故事板将按照Xcode8之前的版本运行。

当您需要对故事板文件进行其他更改时,请再次执行这些步骤。

XIB或Storyboard默认设置为旧版本7.x和保存并closures。 临时解决scheme,但工程。 保存并closures后,请勿再次打开。 否则,需要从头开始按照相同的步骤。 在这里输入图像描述

呃同样的问题。 我部分地设法修复它在以下方式( 为Xcode版本8.1(8B62)

在Storyboard的文档大纲中,我点击了每个有黄色箭头指示布局问题的场景(截图中的Number 1)

之后,对于每个有问题的场景,我不得不点击“更新帧”小图标(屏幕截图上的数字2),它修复了每个场景的所有布局问题。

在这里输入图像描述

但是在我的情况下,从Xcode7过渡到Xcode8之后,一个场景仍然处于哭泣状态。 我必须通过调整约束或添加缺less的约束来手动修复它。

嘿,XCode8和故事板不是好事。 如果你使用AppCode编辑器,你将不会有这样的问题,因为它不支持Storyboards; P

祝你好运!

Xcode 8.1 Beta 2解决了这个问题。 请检查这个下载链接

https://developer.apple.com/download/

请按照主题寻找任何可能的解决scheme:(我相信这是发生在许多开发者身上)。
Xcode 8 GM种子Storyboard问题
Xcode 8 – 以前的故事板变得扭曲

(我使用任何宽度600)当Xcode更新到Xcode 8它改变了我所有的ViewControllers的大小。 结果所有的布局都被扭曲了。
目前我看到只有3个解决scheme的问题(我不会相信在等待修复很快)。

1.去每个ViewController并通过Update Frames修复它。

2.转到主ViewController Size Inspector -> Freeform -> 600因为大多数控制器都被推断出来,所以它们会改变它们的大小(小心苹果公司希望引入的新function的影响)。

3.去掉故事板的git变化(我不build议这样做,因为苹果公司也插入了一些对Xcode可能很重要的更新)。

Xcode 8(WWDC16)中新AutoLayoutfunction的附加链接: 使应用程序自适应,第1部分

在我的情况下,由Akhil Kateja和我build议的作品解决scheme也需要重置主视图的宽度和高度:

1)将视图大小设置为自由forms

在这里输入图像描述

2)将视图的宽度和高度重置为原始大小:

在这里输入图像描述

最后保存,你就完成了。

设置视图大小以自由forms 推断为我工作。 它可以在属性检查器中的 模拟度量标题下find。

我有同样的问题,我已经解决了强制更新控制器的视图约束。 把下面的代码放在你的viewDidLoad()函数中

 self.view.layoutIfNeeded() 

我select了每个控制器,并点击“更新帧”,并修复了布局。

从@ david-truong( https://stackoverflow.com/a/39589860/1407528 )的答案是不适用于我的情况,所以如果你是在我的情况相同,试试这个:

  • 从这里下载以前的Xcode 7.3.1: https : //developer.apple.com/download/more/
  • 撤消所有的更改(如果你有一个像git的代码pipe理器,如果你不这样做,你应该' https://githowto.com/ ')
  • 用Xcode 7.3.1打开项目。

如果您将所有设备更新到iOS 10+,则此版本的Xcode将不会将这些设备识别为兼容的设备。 所以,试试这个技巧:

  • 转到:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • 将与iOS 10或10.1相关的文件夹复制到:/ Applications / Xcode 7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  • 用Xcode 7.3.1打开项目(如果已经打开,重新启动Xcode)
  • select您连接的iOS 10+设备
  • 推跑

注意:像Swift这样的新function将无法使用这个技巧,但是您应该能够加载和构build您的项目。

希望这会有所帮助

当我更新Xcode从7.3到Xcode 8并运行应用程序,一些意见完美显示,但一些扭曲。然后,我检查了笔尖文件,它促使我select特定的设备大小,然后显示该笔尖根据设备的大小是offcourse没有Any-Any(Xcode 7.3) 。 所以所有的笔尖文件都没有以正确的方式显示。

我的解决scheme工作: – 按下图所示的黄色箭头

在这里输入图像描述

它会提示popup显示选项

在这里输入图像描述

selectUpdate Frames Apply to all views in container checked.it将解决大约90%的扭曲的用户界面,其余的自动布局约束问题可以手动解决。

对我来说,解决scheme只是点击有问题的UIViewController,然后单击Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames

它重新安排的意见,以适应现有的约束基于新select的默认视图(iPhone 7在我的情况)。

另外请注意:如果您像我那样得到导航栏错放视图警告,只需selectUINavigationController / UIViewController,然后selectAttributes Inspector > Bar Visibility > Shows Navigation Bar – closures然后再打开。

我使用Xcode Version 7.3.1解决了这个问题,您可以从苹果开发者平台下载.dmg文件。 我在每个应用程序中都使用了Autoresizing,这对我来说非常有用。 我只会更新到Xcode 8,如果他们可以修复这个错误。

请在此下载: https : //developer.apple.com/services-account/download?path = /Developer_Tools/Xcode_7.3.1/Xcode_7.3.1.dmg

为了解决类似的问题,我将xibconfiguration为自由格式(不是推断),并将Xib文件保存为Xcode 7.x兼容格式。 我的情况都需要这两个步骤。 我希望有帮助!

我注意到XCode 8.2中有一个新的button(检查图像中的橙色圆圈)。 它会给你一些帮助。

步骤:1.打开故事板,select你想要的任何设备2.只要select视图控制器3.点击提到的button(如图)4.它将更新该视图控制器的框架,你可以继续

我没有find比这更好的解决scheme。 请回复,如果find一个。

在这里输入图像描述

在viewdidload中更新约束和布局子视图解决了这个问题

 - (void) viewDidLoad { [self.view updateConstraints]; [self.view layoutSubviews]; [super viewDidLoad]; }