ObjectiveC UIImage更新视图阻塞

时间:2013-04-13 00:29:41

标签: iphone objective-c xcode uiimageview

我有最奇怪的错误。我在故事板中有两个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];

1 个答案:

答案 0 :(得分:2)

当A较大时,两个图像视图之间会出现无意的约束。