1

我正在尝试为 a 的变换设置动画UIButtonCGAffineTransformRotate当它正确执行动画时,它会在执行此操作之前将按钮向下和向左移动约 15 个像素。这是执行动画转换的代码:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformRotate(self.addCloseButton.transform, degreesToRadians(45));
                 }
                 completion:nil];

当我反转转换时,它会做同样的事情,只是在动画之前将其移回原始位置(向上 15 个像素,向右 15 个像素),我使用以下代码执行此操作:

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformIdentity;
                 }
                 completion:nil];

为什么会发生这种转变?该按钮是使用界面生成器创建的,即使我将动画持续时间设置得更高或添加延迟,也会立即发生转变。

4

2 回答 2

1

我想通了:原来在我的 xib 上选择了“使用自动布局”(它添加了一堆自动约束)在尝试使用转换时搞砸了。关闭它解决了我的问题。

于 2012-10-22T02:27:54.480 回答
0

在仍然使用自动布局和情节提要的同时解决此问题是可能的。请参阅我对这个问题的回答:https ://stackoverflow.com/a/19582959

于 2013-11-29T17:39:17.170 回答