我把它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];
// other animation options here if you'd like, and the duration can be anything, not just 3.
[UIView animateWithDuration:10 delay:0 options:UIViewAnimationOptionRepeat animations: ^{
// do your rotation stuff on your image, in this block, for the cell you will be returning.
selectedCell.imageView.transform = CGAffineTransformMakeRotation(kDegreesToRadians(90));
} completion:nil];
[UIView commitAnimations];
}
如果我评论NSThread
代码行,应用程序不会挂起,所以基本上我在动画代码中做错了什么,只是让应用程序进入挂起状态。