当取消选择aTableView
上的单元格时,我实际上将在bTableView
上删除一个单元格。而且,我使用UIViewController
代替UITableViewController
只是因为我的应用上有很多东西,而且我确实已经采用了UITableViewDelegate
,UITableViewDataSource
。
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
if (tableView == bTableView) { ......
MyCustomCell *cell = (MyCustomCell *)[aTableView cellForRowAtIndexPath:indexPath];
[convertResultTableView beginUpdates];
// some data updates stuff..
[UIView beginAnimations:@"quitRotation" context:NULL];
CATransform3D rotation;
rotation = CATransform3DMakeRotation((70.0 * M_PI) / 180, 0.0, 0.0, 1.0);
cell.layer.transform = rotation;
cell.layer.anchorPoint = CGPointMake(-1, 0.5);
cell.alpha = 0;
cell.layer.shadowOffset = CGSizeMake(0, 0);
[UIView commitAnimations];
[convertResultTableView endUpdates];
问题是细胞只有在第二次,第三次,第四次动画时动画才有效,但不是第一次。 (这意味着它出现,消失,出现并消失< - 这次)
它仍然会做一些动画,但它不像我预期的那样,并且在错误的动画和正确的动画之间有很多不同。
有什么想法吗?
答案 0 :(得分:0)
真的是一个愚蠢的错误!
这是我的错误:
我的aTableView
会在第一次显示时做一些动画,但是我的代码有一些愚蠢的错误,所以只有我aTableView
的第一行单元格做了动画,因此,cell.layer.position会有所不同。然而,在它消失并再次出现之后,cell.layer.position都会转到正确的位置,因为代码是正确的,所以当它是第2,第3 ......时间时它会起作用。
我是如何发现错误的:我只是NSLog(...);
基本上记录了cell.layer的所有属性,因为我真的是CoreAnimation
的新手,幸运的是,我的首先尝试的是cell.layer.position,我立即发现了错误。