使用UIViewAnimation旋转UITableViewCell的UIImageView(我的应用程序挂起!!)

时间:2011-05-24 12:38:22

标签: uitableview uiimageview rotation hang 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:@“looping animation”context:nil]; //如果您愿意,可以在此处使用其他动画选项,持续时间可以是任何内容,而不仅仅是3。

    [UIView animateWithDuration:10延迟:0选项:UIViewAnimationOptionRepeat动画:^ {     //在你的图像中,你将要返回的单元格中进行旋转。     selectedCell.imageView.transform = CGAffineTransformMakeRotation(kDegreesToRadians(90)); }完成:nil];

    [UIView commitAnimations];
    }

如果我评论NSThread代码行,应用程序不会挂起,所以基本上我在动画代码中做错了一些只是让应用程序处于挂起状态。

请帮忙!! TIA

1 个答案:

答案 0 :(得分:1)

块动画的(恼人的)默认设置是禁用用户交互。试试这个:

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