0

我在iOS中遇到了我无法弄清楚的问题。

我有一个 UIImageView 的动画效果很好。另外,我有一个 setCenter 可以将 UIImageView 放在屏幕上的正确位置,效果也很好。

问题是当我尝试设置 UIImageView 的中心然后启动动画时,动画可以工作但中心不会改变。

动画代码:

-(void)startMirror{

[UIView animateWithDuration:1.0
                      delay:0.0
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse
                 animations:^{
                     self.transform = CGAffineTransformMakeScale(-1, 1);
                 }
                 completion:^(BOOL completed){}];
  }

主要代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 [self.face1 setCenter:CGPointMake(200, 300)];
 [self.face1 startMirror];
}

我用我的问题做了一个迷你项目,你可以从这里下载 we.tl/0gPqkVDCKK 尝试评论和取消评论第 46 行,你会看到我的问题是什么。

4

2 回答 2

1

我认为您需要在 startMirror 中进行转换后转换中心点。

于 2013-03-13T02:27:54.823 回答
0

我找到了解决方案,替换:

[self.face1 setCenter:CGPointMake(200, 300)];

和:

self.face1.transform = CGAffineTransformMakeTranslation(-11, 80);

并且在动画中

self.transform = CGAffineTransformScale(self.transform, -1, 1);
于 2013-03-13T15:25:42.120 回答