UIStackView rotation/constraint 错误
UIStackView rotation/constraint bug
我有一个 UIStackView,它是使用自动布局的位置。当屏幕旋转时,我停用并激活各种约束以将堆栈视图移动到我想要的位置。
我已经使用 Reveal 进行了检查,以确保堆栈视图的位置正确而且确实如此。
在堆栈视图中,我有多个视图,堆栈视图的对齐方式设置为填充,以确保它们扩展以填充堆栈视图的宽度。这工作正常,除了...
当我旋转设备时,然后旋转回原来的方向。然后堆栈视图被正确定位,但其中的视图却没有。他们没有填充堆栈视图,而是在侧面留下了一个空隙。通常介于 20 到 50 点之间。但在同一台设备上总是相同的数量。
这让我很困惑。我发现让堆栈视图正确填充旋转回来的唯一解决方案是:
override func viewDidLayoutSubviews() {
sliders.alignment = UIStackViewAlignment.Bottom
sliders.alignment = UIStackViewAlignment.Fill
}
这似乎启动了堆栈视图并使其正确重排视图。但是感觉比较俗气
有没有人遇到过这个bug并找到了更好的解决方案?
我已经围绕 setNeedsLayout()、setNeedsDisplay() 等尝试了各种方法。但是到目前为止,只有上面的代码解决了这个问题。
你可能想在第一次旋转时检查你的控制台and/or第一次旋转回到原来的方向。在我的例子中,我收到一条关于约束冲突的错误消息,并且 iOS 打破了我的一个约束(这是约束冲突情况下的默认行为)。
此外,请检查您是否无意中为任何约束添加了不同大小的约束常量 class。当我忘记将 Storyboard 放入 w: Any h: Any class.
时,我经常会遇到这种情况
好的,最新的 SDK 问题似乎已经消失了。所以一定是 Apple 修复了。
我有一个 UIStackView,它是使用自动布局的位置。当屏幕旋转时,我停用并激活各种约束以将堆栈视图移动到我想要的位置。
我已经使用 Reveal 进行了检查,以确保堆栈视图的位置正确而且确实如此。
在堆栈视图中,我有多个视图,堆栈视图的对齐方式设置为填充,以确保它们扩展以填充堆栈视图的宽度。这工作正常,除了...
当我旋转设备时,然后旋转回原来的方向。然后堆栈视图被正确定位,但其中的视图却没有。他们没有填充堆栈视图,而是在侧面留下了一个空隙。通常介于 20 到 50 点之间。但在同一台设备上总是相同的数量。
这让我很困惑。我发现让堆栈视图正确填充旋转回来的唯一解决方案是:
override func viewDidLayoutSubviews() {
sliders.alignment = UIStackViewAlignment.Bottom
sliders.alignment = UIStackViewAlignment.Fill
}
这似乎启动了堆栈视图并使其正确重排视图。但是感觉比较俗气
有没有人遇到过这个bug并找到了更好的解决方案?
我已经围绕 setNeedsLayout()、setNeedsDisplay() 等尝试了各种方法。但是到目前为止,只有上面的代码解决了这个问题。
你可能想在第一次旋转时检查你的控制台and/or第一次旋转回到原来的方向。在我的例子中,我收到一条关于约束冲突的错误消息,并且 iOS 打破了我的一个约束(这是约束冲突情况下的默认行为)。
此外,请检查您是否无意中为任何约束添加了不同大小的约束常量 class。当我忘记将 Storyboard 放入 w: Any h: Any class.
时,我经常会遇到这种情况好的,最新的 SDK 问题似乎已经消失了。所以一定是 Apple 修复了。