在升级到Xcode 8之后,这是我的一个屏幕之前和之后。
我所做的就是打开我的 main.storyboard 并从那里开始构建并运行我的手机上的应用程序。
在我的版本控制中,我可以看到Xcode正在对我的main.storyboard进行很多更改,就在我打开它的时候。
每当我删除这些更改时,我都可以看到我在Xcode 7.3.1中看到的内容。
但是,只要我用我的故事板重新打开界面构建器,我就会看到这些更改重新进入地方。
我有什么可以做的吗?
答案 0 :(得分:111)
我有一个类似的问题,一旦我将storyboard文件转换为兼容Xcode8,桌面图像就不会出现了。这看起来像Xcode8的一个错误,所以在发布错误修复之前,这是一个解决方法:
答案 1 :(得分:14)
答案 2 :(得分:8)
呃同样的问题。我部分设法通过以下方式修复它( for Xcode Version 8.1(8B62))
在Storyboard的文档大纲中,我点击了每个场景,其中黄色箭头表示一些布局问题(屏幕截图上的数字1)
在此之后,对于每个有问题的场景,我必须点击"更新帧"小图标(屏幕截图中的第2个)修复了每个场景的所有布局问题。
然而,从Xcode7过渡到Xcode8后,我的案例中的一个场景仍然处于哭泣状态。我必须通过调整约束或添加缺少的约束来手动修复它。
Phew,对XCode8和Storyboard来说并不是一件好事。如果你使用了AppCode编辑器,你就不会遇到这样的问题,因为它不支持Storyboard; P
祝你好运!答案 3 :(得分:7)
Xcode 8.1 Beta 2解决了这个问题。请查看此下载链接
答案 4 :(得分:6)
请按照主题获取任何可能的解决方案:(我相信它适用于许多开发人员)
Xcode 8 GM seed Storyboard issue
Xcode 8 - Previous storyboards getting distorted
(我使用anyH anyW width 600)当Xcode更新为Xcode 8时,它改变了我所有的ViewControllers大小。结果所有的布局都被扭曲了
目前我只看到3个问题的解决方案(我不相信很快就会等待修复)。
1.为每个Viewcontroller选择并按Update Frames
进行修复。
2.转到主ViewController Size Inspector -> Freeform -> 600
,因为推断出大多数控制器会改变它的大小
所有这些。(小心我想要的新功能Apple的影响
介绍)。
3.删除故事板中git的变化(我不建议它,因为Apple也插入了一些可能对于
xcode的)。
Xcode 8(WWDC16)中新的AutoLayout功能的附加链接: Making Apps Adaptive, Part 1
答案 5 :(得分:5)
答案 6 :(得分:4)
对我来说,解决方案只是单击有问题的UIViewController然后Editor > Resolve Auto Layout Issues > All Views In ... > Updates Frames
它根据新选择的默认视图(在我的情况下为iPhone 7)重新排列视图以适应现有约束。
另请注意:如果您像我一样得到导航栏错位视图警告,只需选择UINavigationController / UIViewController,然后选择Attributes Inspector > Bar Visibility > Shows Navigation Bar
- 将其关闭然后再打开。
答案 7 :(得分:3)
将视图大小设置为 Freeform 从推断为我工作。它可以在属性检查器中的模拟指标标题下找到。
答案 8 :(得分:3)
我遇到了同样的问题,我通过强制更新控制器的视图约束解决了这个问题。将以下代码放在 viewDidLoad()函数
中self.view.layoutIfNeeded()
答案 9 :(得分:3)
我选择了每个控制器并单击“更新帧”并修复了布局。
答案 10 :(得分:3)
@ david-truong(https://stackoverflow.com/a/39589860/1407528)的答案在我的情况下不起作用,所以如果你处于同样的情况,试试这个:
如果您将所有设备更新到iOS 10+,则此版本的Xcode将无法将这些设备识别为兼容设备。所以,试试这个技巧:
注意:使用此技巧无法使用Swift等新功能,但您应该能够加载和构建项目。
答案 11 :(得分:3)
希望这会有所帮助
当我将Xcode从7.3更新到Xcode 8并运行应用程序时,一些视图完美显示但有些视图失真。然后,我检查了nib文件,它促使我选择特定的设备大小然后显示笔尖根据设备大小而言,不是Any-Any(Xcode 7.3)
。所以所有的nibs文件都没有以正确的方式显示。
我的解决方案工作: - 按下黄色箭头,如下图所示
它会提示弹出窗口,显示
等选项选择Update Frames
Apply to all views in container
checked.it将解决约90%的扭曲用户界面,其余的自动布局约束问题可以手动解决。
答案 12 :(得分:1)
我使用Xcode版本7.3.1解决了这个问题,您可以从Apple开发人员门户网站下载.dmg文件。我在每个应用程序中都使用了Autoresizing,它对我很有用。 只有在他们能解决这个问题时我才会更新到Xcode 8。
答案 13 :(得分:1)
为了解决类似的问题,我将xib配置为Freeform(非推断)并将xib文件保存为Xcode 7.x兼容。我的案子中都需要这两个步骤。我希望有所帮助!
答案 14 :(得分:1)
我注意到Xcode 8.2中的一个新按钮,(检查图像中的橙色圆圈)。它会给你一些帮助。
步骤: 1.打开故事板并选择所需的任何设备 2.只需选择View Controller即可 3.单击提到的按钮(如图像中所示) 4.它将更新该视图控制器的帧,您可以继续它
我没有找到比这更好的解决方案。如果找到,请回复。
答案 15 :(得分:0)
在viewdidload中更新约束和布局子视图解决了问题
- (void) viewDidLoad {
[self.view updateConstraints];
[self.view layoutSubviews];
[super viewDidLoad];
}