=== 编辑 ========
此问题现已在 Xcode 8.1 中解决。我查过了。
=====
我不太了解自动布局。所以,我在我的所有应用程序中使用自动调整选项,对我来说没问题。我可以毫无问题地满足我的所有要求。
现在在Xcode 8中,我已将我的旧swift项目迁移到swift 3.现在问题出现了。
参见图片,我已经设置了Autoresizing,并且它在所有设备中都没有问题,直到现在这个项目都在AppStore中运行,因此我无法显示UI或故事板。
现在我必须在项目中做一些更新。所以我现在正在使用Xcode 8。但是我的自动调整功能不正常,因为所有控件都位于中心,UI被搞砸了。
问题仍存在于设备中。我也检查了模拟器和设备。但问题也存在。任何建议和帮助将不胜感激。提前谢谢。
编辑:
昨天在运行时只有问题,但今天的故事板也改变了像这个图像的视图
这意味着整个UI设计搞砸了。这很奇怪。
答案 0 :(得分:7)
面对同样的问题。作为我的观点,当我们使用自动调整并仅将内部autoresizingMask设置为任何视图控制器时,会出现此问题。像,
如果我们当时也使用border autoresizingMask而不是面临这个问题。像,
我不知道这是xcode 8的实际错误或在xcode 8中删除此功能。
所以,最后我的建议是我们需要在xcode 8中使用自动布局。
答案 1 :(得分:7)
请尝试取消选中xib或storyboard中的自动调整大小。并在viewDidLoad
设置[_scrollView setAutoresizesSubviews:YES];
如果这可以解决您的问题,请尝试
修改:如果故事板取消选中Resize view from NIB
选项。
答案 2 :(得分:3)
我不确定故事板,但我找到了一个xib文件的临时解决方案。在“工具”面板(右侧面板)中,选择“文件检查器”选项卡。在Interface Builder Document部分下,选择要在“XCode 7.x”中打开的文件。它会要求您确认您不想使用XCode 8功能,保存文件并关闭它。
答案 3 :(得分:2)
我在Xcode8中也面临同样的问题
我有一个使用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)
它为我工作,谢谢!
答案 4 :(得分:2)
Xcode 8 beta 2解决了这个问题!!我现在已经打结了!
答案 5 :(得分:1)
更新此问题似乎已在Xcode 8.1中修复
遇到同样的问题,我发现这里的罪犯是 UIScrollView 元素。只需移动滚动条之外的所有内容,您就会发现一切正常,就像以前一样。
这意味着一种可能的解决方法是将可滚动内容放在普通的UIView中,然后在运行时以编程方式将其替换为UIScrollView。
答案 6 :(得分:1)
答案 7 :(得分:0)
主持人在此重复删除了我的答案,请参阅我的答案:
Autoresizing under iOS 10 doesn't work
响应max,是的,调整一堆子视图可能会很痛苦。这就是我建议在滚动视图中添加单个“内容视图”并将所有现有子视图移动到该视图内部的原因。像在滚动视图中一样自动调整内容视图中的子视图,并将内容视图自动调整为滚动视图。
这是内容视图,然后您在viewDidLayoutSubviews中调整大小。
同样,scrollview构造内部的“内容视图”几乎是使用autolayout自动调整大小滚动视图的标准方法,因此它应被视为最佳实践。
这里描述的方法......
https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/
我的方法看起来有些复杂,但是我能够在大约15分钟内用大约12个场景和Vc修补故事板。使用自动布局重建所有内容会花费更多,更长时间。
答案 8 :(得分:0)
故事板会根据框架的宽度和高度进行更新,以适应新的视图:'功能。虽然它似乎不会影响在设备/模拟器上运行。
奇怪的是,错误修正在XCode 8.2 release notes中未注明。
原始回答here