更新到Xcode 8后的布局问题
在升级到Xcode 8之后,这是我的一个屏幕之前和之后。
我所做的只是打开main.storyboard,然后在那里build立并在手机上运行我的应用程序。
在我的版本控制中,我可以看到Xcode正在对我的main.storyboard进行很多更改,只是从打开它。
每当我删除这些变化,我可以看到我在Xcode 7.3.1中看到什么。
但是,只要我重新打开界面生成器与故事板,我看到这些变化回到原地。
有什么我可以做的吗?
在Xcode 8之前
更新到Xcode 8之后
我有一个类似的问题,一旦我将故事板文件转换为Xcode8兼容,不会出现tableview图像。 这看起来像Xcode8的错误,所以直到发布错误修复程序,这是一个解决方法:
- 在Xcode 8中打开你的故事板,并select一个初始设备视图。 按照通常的方式进行更改。
- 完成更改后,select故事板 – >文件检查器 – >打开 – >select“Xcode 7.x”。
- 提示时select“保存并closures”
- 您的故事板更改将被保存,故事板将按照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解决了这个问题。 请检查这个下载链接
请按照主题寻找任何可能的解决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]; }