我的目标是根据选择使3幅图像缩小,增长并沿水平轴移动。使用自动布局似乎使图像跳跃,因为他们尝试实现顶级空间到superview / Bottom空间以超视图约束。
因此,为了解决这个问题,我已将所有图像放入自己的UIView中。 UIView设置为图像可以增长的最大尺寸,它以水平轴为中心。所以现在所有的图像都必须保持在相应的UIView中心。这解决了我的问题,因为UIViews执行水平平移,而图像在内部收缩/增长同时保持居中。我的问题是 - 这是正确的方法吗?它似乎很长,就像我可能滥用自动布局的能力。我必须用更多的图像执行类似的任务,所以欢迎任何建议!谢谢。
答案 0 :(得分:8)
我刚刚在这里写了一篇关于这个主题的文章:
How do I adjust the anchor point of a CALayer, when Auto Layout is being used?
基本上,自动布局在任何类型的视图转换中都不能很好地发挥作用。最简单的解决方案是将您的视图完全从自动布局的控制中移出,但是您也可以只为其提供不会反对您打算应用的特定类型转换的约束。第二个解决方案听起来就像你正在做的那样。