Xcode 8中的自动调整问题

=== 编辑 ========

这个问题现在已经在Xcode 8.1中解决了。 我检查过。

================

我不知道自动布局正确。 所以,我在所有的应用程序中使用自动调整选项,这对我来说很好。 我没有任何问题能够满足我的所有要求。

现在在Xcode 8中,我已经将我的旧swift项目迁移到swift 3.现在问题出现了。

故事板SS

在图像中看到,我已经设置了Autoresizing,并且在所有设备中工作正常,直到现在,这个项目都在AppStore中,所以我不能显示UI或故事板。

现在我不得不在项目中做一些更新。 所以我现在在Xcode 8上工作。 但是,我的自动调整不能正常工作,因为所有的控件都集中在一起,用户界面混乱了。

输出图像

而且这个问题还存在于设备中。 我也检查过模拟器和设备。 但问题也在那里。 任何build议和帮助将不胜感激。 提前致谢。

编辑:

昨天在运行时只有问题,但是今天的故事板也改变了这个图像的意见

故事板图像

这意味着整个UIdevise是搞砸了。 这很奇怪

面对同样的问题。 作为我的观点,这个问题发生在我们使用autoresizing并且只将inner autoresizingMask设置给任何视图控制器的时候。 喜欢,

在这里输入图像说明

如果我们当时也使用边界自动识别Mask,而不是面对这个问题。 喜欢,

在这里输入图像说明

我不知道这是xcode 8的实际bug或在xcode 8中删除此function。

所以,最后我的build议是,我们需要在xcode 8中使用自动布局。

请尝试从xib或故事板取消选中自动调整。 并在viewDidLoad设置[_scrollView setAutoresizesSubviews:YES];

尝试一下,如果这解决了你的问题

编辑:如果故事板取消选中Resize view from NIB选项Resize view from NIB

我不确定故事板,但我已经find了xib文件的临时解决scheme。 在“工具”面板(右侧面板)中,select“文件检查器”选项卡。 在Interface Builder Document部分下,select要在“XCode 7.x”中打开的文件。 它会要求您确认您不想使用XCode 8function,保存该文件并closures它。

在这里输入图像说明

我也面对Xcode8中的scrollView相同的问题

我有一个解决scheme使用scrollView

首先把一个简单的UIView,并添加到你想添加到scrollView的所有组件,并将该组件autoSizing

并采取一个scrollView和以编程方式设置视图框架,并设置scrollView contentSize并添加到scrollView视图

像明智的,在我的情况下,我添加这个代码在viewDidLoad为swift项目

 // add view to scrollview self.scrollObjForNextAppointment.contentSize = CGSize(width:self.scrollObjForNextAppointment.frame.size.width,height:410) self.viewForScrollContent.frame = CGRect(x:0,y:0,width:self.scrollObjForNextAppointment.frame.size.width,height:410) self.scrollObjForNextAppointment.addSubview(self.viewForScrollContent) 

这是为我工作,谢谢!

Xcode 8testing版2解决了这个问题! 我已经检查了!

通过取消选中“自动调整子视图”来解决ScrollView

在这里输入图像说明

更新这个问题似乎已经修复在Xcode 8.1中


有同样的问题,我发现这里的罪犯是UIScrollView元素。 只需将所有内容移出滚动条,就可以像以前一样看到一切正常。

这意味着一个可能的解决方法是将您的可滚动内容放置在一个普通的UIView中,然后在运行时以编程方式将其replace为UIScrollView。

主持人好心地删除我的答案在这里作为重复,所以看到我的答案在:

在iOS 10下的自动调整不起作用

为了回应最大,是的,调整一堆子视图可能是一个痛苦。 这就是为什么我build议在滚动视图中添加一个“内容视图”,并在视图中移动所有现有的子视图。 自动调整内容视图中的子视图,就像使用滚动视图一样,并将内容视图自动调整为滚动视图。

这是内容视图,然后你在viewDidLayoutSubviews里面resize。

再次,scrollview构造内的“内容视图”几乎是使用autolayout自动调整滚动视图的标准方式,所以应该被认为是最佳实践。

这个方法在这里描述…

https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

我的方法似乎有点复杂,但是我能够在大约15分钟内用十几个场景和Vc来修补故事板。 使用自动布局重build所有东西需要花费很多很多的时间。

苹果刚刚推出了XCode 8.2,它为我解决了这个问题。 我一直在使用XCode 7.3.1进行与8.1平行的界面devise,但是现在我可以使用8.2而没有任何问题。

故事板获取更新与帧的宽度和高度,以适应新的“查看为:”function。 虽然它似乎不影响在设备/模拟器上运行。

奇怪的是,这个错误修正在XCode 8.2发行说明中没有提到。

这里的原始答案