Я кодирую игру для iOS и пытаюсь переместить экземпляр Tile (Tile является подклассом UIImageView.)
Именно то, что я хочу, это чтобы мой экземпляр Tile перемещался из точки A (x, y) в точку B (x, y + 70) за 0,20 с.
Я уже читал этот пост, в котором описывается аналогичная проблема: изменить положение UIImageView< /а>
Я использовал рекомендованный код и адаптировал его к своему случаю. Итак, вот код метода, который я использую:
- (void) moveTileDown {
[UIView animateWithDuration:0.20
delay:1.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y + 70, self.frame.size.width, self.frame.size.height);
}
completion:^(BOOL finished){
NSLog(@"Done!");
}];
}
Но теперь вот моя проблема. Вместо перехода от A(x,y) к B(x,y+70) при вызове метода моя плитка переходит к C(x,y-70) и возвращается к A через 0,20 с.
Чтобы предоставить больше информации, метод moveTileDown вызывается из цикла for, который выполняется в другом контроллере.
for (int i=0; i <firstTileRow; i++){
[[[_lines objectAtIndex:i] objectAtIndex:firstTileColumn] moveTileDown];
[[[_lines objectAtIndex:i] objectAtIndex:secondTileColumn] moveTileDown];
}
Есть идеи?
UIViewAnimationOptionBeginFromCurrentState
наUIViewAnimationOptionCurveEaseIn
. - person iphonic   schedule 30.10.2014moveTileDown
? Вы можете обновить полную реализацию? - person iphonic   schedule 30.10.2014NSLog(@"Initial Frame: %@",NSStringFromCGRect(self.frame));
в первую строку функцииmoveTileDown
перед блоком анимации и посмотреть лог.. - person iphonic   schedule 30.10.2014