0

我正在尝试使用以下方法缩放 UiView 及其 UIImageView 子视图: CGAffineTransform original = mv.transform; CGAffineTransform new = CGAffineTransformScale(original, 2, 2);

但这会导致 ImageView 与它开始的位置相去甚远:

在转换之前,图像视图(书)位于紫色圆圈的中心。 这在转换后显示它(在弹簧动画块中完成)

在转换之前,图像视图(书)位于紫色圆圈的中心。这在转换后显示它(在弹簧动画块中完成)

记录自动布局在 IB 中已关闭

4

1 回答 1

1

因此,在修补了几个小时后,我能够产生预期的效果。我还在动画块中更改视图的中心,我发现如果我在分配新的转换之前放置分配中心值的语句 ,子视图在转换和中心更改期间保持居中。另外,我发现如果我正在使用 UIView 子类,我必须layoutIfNeeded在缩放和移动视图上的动画块之前调用。有趣的是,当使用常规 UIView 对象时,我发现没有必要调用 tolayoutIfNeeded以产生在中心转换和变换之后保持子视图居中的预期效果。

我不知道为什么需要这些特定条件才能在变换和坐标移动期间保持子视图居中。我一直在查看 Apple 文档,但还没有找到确切的解释。

于 2014-11-29T19:29:59.197 回答