我正在移动一些瓷砖(UIlabels真的)与动画。这工作,但我也希望瓷砖回到原来的位置上动画完成。我在这方面得到了非常不同的结果。有时效果很好,但当局似乎对他们的立场进行了重新调整。下面是我的代码示例。
[UIView animateWithDuration:animationLength animations:^{
for (int c = 0; c<tilesToMove.count; c++) {
animationMoving = true;
NSInteger fromTile = [tilesToMove[c][0] integerValue];
NSInteger toTile = [tilesToMove[c][1] integerValue];
UILabel *toTile = (UILabel *)[self.view viewWithTag:toTile];
UILabel *fromLabel = (UILabel *)[self.view viewWithTag:fromTile];
fromLabel.frame = CGRectMake(toTile.frame.origin.x, toTile.frame.origin.y, fromLabel.frame.size.width,fromLabel.frame.size.height);
}
}
completion:^(BOOL finished){
if (finished) {
for (int c = 0; c<tilesToMove.count; c++) {
NSInteger fromTile = [tilesToMove[c][0] integerValue];
NSInteger toTile = [tilesToMove[c][1] integerValue];
UILabel *button = (UILabel *)[self.view viewWithTag:fromTile+100000];
UILabel *fromLabel = (UILabel *)[self.view viewWithTag:fromTile];
fromLabel.frame = CGRectMake(button.frame.origin.x, button.frame.origin.y, fromLabel.frame.size.width,fromLabel.frame.size.height);
}
[self animateMoveCompleted:moveDirection];
}
}];它查找我想在一个名为tilesToMove的数组中移动的每个瓷砖的标记。这也包含了我希望第一个瓷砖移动到的标签(动画到相同的位置)。完成后,我希望它重置到原来的位置。这总是有效的,但有时,它会激活过渡。这不是我的本意。我只想动画的第一步(这是按预期的工作),而不是重置的位置(做重置到正确的位置,但动画)。
动画的完成是否有动画效果?
发布于 2014-06-05 08:00:35
“动画的完成”--完成块没有做任何事情。
这是一个代码块,将在动画完成后执行。
如果该块中的代码启动另一个动画,那么是的,它将动画化。
因为您已经调用了一个名为animate...的方法,所以这就是问题所在。您需要运行一个没有动画属性的方法。如果你不想给它们动画的话,它应该只设置它们。
提示
或者,如果你不想让timeDuration动画化,你可以使用它的0。
https://stackoverflow.com/questions/24054638
复制相似问题