Поверните UIImageView из UITableViewCell с помощью UIViewAnimation (мое приложение зависает !!)

У меня есть этот UITableViewCell в таблице с левым imageView, установленным на изображение. Теперь все, что мне нужно, - это непрерывно вращать это изображение, когда пользователь выбирает ячейку (строку псевдонима). Я могу анимировать ячейку imageView для поворота, но приложение перестает отвечать на вводимые пользователем данные, как только я это сделаю. Другими словами приложение зависает и изображение вращается как должно быть. Ниже приведен соответствующий фрагмент кода.

  • (void) tableView: (UITableView *) aTableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {... [NSThread detachNewThreadSelector: @selector (rotateImage) toTarget: self withObject: nil];

.... }

  • (void) rotateImage {UITableViewCell * selectedCell = [self.tableView cellForRowAtIndexPath: [self.tableView indexPathForSelectedRow]];

    [UIView beginAnimations: @ контекст "зацикливания анимации": nil]; // другие варианты анимации здесь, если хотите, а продолжительность может быть любой, а не просто 3.

    [UIView animateWithDuration: 10 delay: 0 options: UIViewAnimationOptionRepeat animations: ^ {// сделайте свой поворот на вашем изображении в этом блоке для ячейки, которую вы будете возвращать. selectedCell.imageView.transform = CGAffineTransformMakeRotation (kDegreesToRadians (90)); } завершение: ноль];

    [UIView commitAnimations];
    }

Если я прокомментирую строку кода NSThread, приложение не зависает, поэтому в основном я сделал что-то не так в коде анимации, только из-за чего приложение перешло в состояние зависания.

Пожалуйста помоги!! TIA


person Ashok    schedule 24.05.2011    source источник


Ответы (1)


По умолчанию (раздражает) блочная анимация - отключить взаимодействие с пользователем. Попробуй это:

[UIView animateWithDuration:10 delay:0
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAllowUserInteraction
                 animations:^{
                    selectedCell.imageView.transform = CGAffineTransformMakeRotation(M_PI);
                }
                 completion:NULL];
person Jason Moore    schedule 07.06.2011