我有最奇怪的错误。我在故事板中有两个UIImageView,一个大的,我们称它为A,一个小的,B。我在视图控制器中设置小动画的位置,并且工作正常。
但是:当我尝试替换A的背景图像时,B突然弹出故事板中的原始位置,它不会让步。事情就是这样:我已经进行了测试,我注意到如果A没有超过一定的宽度,B可以被移动,并且它不会反弹。我尝试在延迟后更改A的图像,在视图控制器中使用[self performSelector:]并超时,但是当我更改图像时,B会快速回到故事板中的位置。我不知道这怎么可能,虽然它看起来像是一个记忆问题。
这是我的动画代码:
CGRect newFrame = self.B.frame;
newFrame.origin.x = newX; // defined earlier
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:.1];
[[[UIAlertView alloc] initWithTitle:@"Moving" message:[NSString stringWithFormat:@"Moving from %g to %d!", self.B.frame.origin.x, newX] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
self.B.frame = newFrame;
[UIView commitAnimations];
答案 0 :(得分:2)
当A较大时,两个图像视图之间会出现无意的约束。