Поверните UIImageView UITableViewCell с помощью UIViewAnimation (Мое приложение зависает !!) - PullRequest
0 голосов
/ 24 мая 2011

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

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

....}

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

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

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

    [UIView commitAnimations];
    }

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

Пожалуйста, помогите !!ТИА

1 Ответ

1 голос
/ 07 июня 2011

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

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