2013-12-09 2 views
0

Я использую метод UIView animateWithDuration:delay:options:animations:completion:, но метод завершения никогда не будет вызван. Вот мой код:UIViewAnimateWithDuration завершение никогда не называлось

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^ 
      { 
       //random lines of code 

      }completion:^(BOOL finished){ 
       if (finished) 
       { 
        NSLog(@"FINISHED"); 
       } 
      }]; 

EDIT: Когда я закомментируйте строки в моем animations: он получает называется ??? !!!

Эти строки:

CGFloat objectY = object.frame.origin.y; 
objectY += speed; 
object.frame = CGRectMake(object.frame.origin.x, objectY, 75, 75); 
+0

Вызывается, если вы прокомментируете эти случайные строки? Или вы пытались добавить else в блок завершения? –

+0

@MertBuran Да. Почему это происходит ??? –

+0

Каковы случайные строки? – Wain

ответ

1

я принимаю предположение - вы хотите, чтобы оживить движение непрерывным движением? Если да, анимация никогда не заканчивается из-за взаимодействия с пользователем.

Просто обновите фрейм, нет анимации UIView. Должно работать нормально.

+0

Я думаю, что вы говорите здесь, что удаление 'UIViewAnimationOptionAllowUserInteraction' позволит завершить обработку – bachonk

+0

Возможно. Его меньше кода, чтобы рассказать, что происходит на самом деле. Вы сделали UIViewAnimation в порядке. Должно быть, что-то мешает. Где приходит скорость или как часто получают эту анимацию, например, вызываемую? Установка источника кадра в анимации - это перемещение на расстояние, но не скорость. скорость - это расстояние, деленное на время, но у вас было что-то в виду, когда вы выбрали имя для поплавка. Как я уже говорил, я угадываю :) –