Xcode 8 中的自动调整大小问题

问题描述 投票:0回答:9

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

此问题现已在 Xcode 8.1 中得到解决。我查过了。

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

我不知道正确的自动布局。因此,我在所有应用程序中使用自动调整大小选项,这对我来说很好。我能够毫无问题地满足我的所有要求。

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

如图所示,我已经设置了自动调整大小,到目前为止,它在所有设备上都工作正常,没有问题,并且该项目已在 AppStore 中上线,因此我无法显示 UI 或情节提要。

现在我必须在项目中进行一些更新。所以我现在在 Xcode 8 中工作。但我的自动调整大小无法正常工作,因为所有控件都位于中心并且 UI 混乱。

设备中也存在此问题。我也检查了模拟器和设备。但问题也存在。任何建议和帮助将不胜感激。预先感谢。

编辑:

昨天仅在运行时出现问题,但今天故事板也改变了视图,如下图所示

这意味着整个 UI 设计都搞砸了。这很奇怪。

ios storyboard swift3 autoresize xcode8
9个回答
7
投票

面临同样的问题。从我的角度来看,当我们使用自动调整大小并为任何视图控制器仅设置内部 autoresizingMask 时,就会出现此问题。喜欢,

如果我们当时也使用边界 autoresizingMask 就不会遇到这个问题。就像,

我不知道这是 xcode 8 的实际错误,也不知道在 xcode 8 中删除此功能。

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


7
投票

请尝试从 xib 或 Storyboard 中取消选中自动调整大小。并在

viewDidLoad
中设置
[_scrollView setAutoresizesSubviews:YES];

编辑: 如果是故事板,请取消选中

Resize view from NIB
选项。


3
投票

我不确定故事板,但我找到了 xib 文件的临时解决方案。在“实用程序”面板(右侧面板)中,选择“文件检查器”选项卡。在 Interface Builder Document 部分下,选择要在“XCode 7.x”中打开的文件。它会要求您确认不想使用 XCode 8 功能,保存文件并关闭它。


2
投票

我在 Xcode8 中的滚动视图也遇到了类似的问题

我有一个使用scrollView的解决方案

首先采取一个简单的 UIView 并添加所有要添加到滚动视图中的组件,然后将该组件赋予 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)

2
投票

Xcode 8 beta 2 解决了这个问题!


1
投票

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


1
投票

更新问题似乎已在 Xcode 8.1 中得到解决


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

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


0
投票

Apple 刚刚推出了 XCode 8.2,它为我解决了这个问题。我一直使用 XCode 7.3.1 进行界面设计,与 8.1 并行,但现在我可以毫无问题地使用 8.2。

故事板会根据框架的宽度和高度进行更新,以适应新的“查看方式:”功能。虽然它似乎不影响在设备/模拟器上运行。

奇怪的是,XCode 8.2 发行说明中没有指出该错误修复。

原答案这里


0
投票

请参阅我的回答:

iOS 10 下自动调整大小不起作用

响应 max,是的,调整一堆子视图的大小可能会很痛苦。这就是为什么我建议将单个“内容视图”添加到滚动视图并将所有现有子视图移动到该视图内。像使用滚动视图一样自动调整内容视图内的子视图的大小,并将内容视图自动调整为滚动视图。

然后您将在 viewDidLayoutSubviews 中调整内容视图的大小。

再说一遍,滚动视图构造中的“内容视图”几乎是使用自动布局获得自动调整滚动视图大小的标准方法,因此它应该被视为最佳实践。

该方法描述如下...

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

我的方法似乎有点复杂,但我能够在大约 15 分钟内修补一个包含十几个场景和 Vc 的故事板。使用自动布局重建所有内容会花费很多很多很多时间。

© www.soinside.com 2019 - 2024. All rights reserved.