当实现UIView animateWithDuration:animations:completion:Class方法时,我遇到了一个场景,我无法确定如何处理。iOS >>动画块>>更改移动ImageView方向'块中间'块执行
我有一个UIImageView在屏幕上移动。在某个事件发生后,它应该改变方向,并转移到新的位置。但是(!)看起来,如果这个事件发生,而不是仅仅改变方向并移动到新的位置,它就会跳到原来的“结束位置”并开始从那里移动到新的位置。
我不知道如何指示'移动对象',在completion == NO
上捕捉它的当前位置并从那里开始动画,而不是跳到预定的结束位置。
下面是代码:
- (IBAction)goHere:(UIButton *)sender
{
CGPoint movingEndPoint;
if (sender == self.btn1)
{
movingEndPoint = CGPointMake(sender.center.x + 40, sender.center.y + 40);
}
if (sender == self.btn2)
{
movingEndPoint = CGPointMake(sender.center.x - 40, sender.center.y - 40);
}
[UIView animateWithDuration:3
animations:^ {
self.movingObj.center = movingEndPoint;
}
completion:^(BOOL completion) {
if (completion == NO)
{
//How to express "New Position = Current Position"?
}
}];
}
尝试Robs解决方案。这很容易 – santhu
这很好 - 我没有使用你的代码,虽然...我只是将presentationLayer框架分配给obj框架,每次调用方法 - 它很好地工作... –