在我的项目中,我使用自动布局以编程方式添加了两个UIViews
。
当我点击下方屏幕中的secondView按钮时使用UIView
动画我先将UIView
推送到secondView UIView
,当我点击firstView按钮时,我将从第二个{{1首先UIView
。
我的问题是,当我在运行时更改模拟器方向时,第二个UIView
与第一个UIView
重叠。请帮助解决为什么会出现这个问题。
我知道这是一个约束问题,但我们如何解决这个问题?
UIView
答案 0 :(得分:0)
您的问题是因为您尝试以两种不同的方式进行布局,这通常(好吧,总是!)是一个坏主意。你有一些自动布局代码,这是一个很好的,绝对是正确的解决方案,但是你会以编程方式尝试计算和设置你的视图的框架,这使不与自动布局很好地配合
您的解决方案是修改动画中的约束,以便自动布局始终完全控制它们。您可以创建新约束以反映新的排名(如果您尝试更改multiplier
值则需要)或者只是调整您现在拥有的值。
您可能有兴趣知道可以添加竞争的自动布局约束集,然后只启用特定布局所需的那些。您还可以考虑将UI移动到故事板,在那里创建约束,然后为这些约束创建IBOutlet
,以便您可以在代码中操作它们。