我有一个UIStackView,它是使用自动布局的位置。当屏幕旋转时,我停用并激活各种约束,将堆栈视图移动到我想要的位置。
我已使用Reveal检查以确保堆栈视图位置正确且确实如此。
在堆栈视图中,我有许多视图,堆栈视图的对齐设置为Fill,以确保它们展开以填充堆栈视图的宽度。这可以正常工作,除了......
旋转设备时,然后旋转回原始方向。然后堆栈视图正确定位,但其中的视图不是。它们不是填充堆栈视图,而是在侧面留下间隙。通常在20到50点之间。但在同一设备上总是相同的数量。
这令我感到困惑。我发现让堆栈视图正确填充回转的唯一解决方案是:
conn.use('mydb')
这似乎踢了堆栈视图并让它正确地重排视图。但感觉相当俗气。
是否有人遇到此错误并找到了更好的解决方案?
我已经尝试了各种各样的setNeedsLayout(),setNeedsDisplay()等等。但是到目前为止只有上面的代码修复了这个问题。
答案 0 :(得分:0)
您可能需要在首次旋转和/或首次旋转回原始方向时检查控制台。在我的情况下,我得到一个关于冲突约束的错误消息,iOS破坏了我的一个约束(这是在约束冲突的情况下的默认行为)。
另外,检查是否无意中为任何约束添加了不同大小类的约束常量。当我忘记将故事板放入w:任何h:任何课程时,我都会遇到这种情况。
答案 1 :(得分:0)
好吧,问题似乎已经与最新的SDK一起消失了。所以必须由Apple修复。