3 回答
TA贡献1805条经验 获得超9个赞
请注意,在iOS 7上,使用UIView Animation将CATransaction围绕起来可以控制表格动画的持续时间。
[UIView beginAnimations:@"myAnimationId" context:nil];
[UIView setAnimationDuration:10.0]; // Set duration here
[CATransaction begin];
[CATransaction setCompletionBlock:^{
NSLog(@"Complete!");
}];
[myTable beginUpdates];
// my table changes
[myTable endUpdates];
[CATransaction commit];
[UIView commitAnimations];
UIView动画的持续时间对iOS 6无效。也许在UIView级别,iOS 7表格动画的实现方式有所不同。
TA贡献1815条经验 获得超10个赞
如今,如果要执行此操作,则可以从iOS 11开始使用新功能:
- (void)performBatchUpdates:(void (^)(void))updates
completion:(void (^)(BOOL finished))completion;
在更新闭包中,放置与beginUpdates()/ endUpdates部分相同的代码。并且在所有动画之后执行完成。
TA贡献1853条经验 获得超6个赞
刚遇到这个。方法如下:
目标C
[CATransaction begin];
[tableView beginUpdates];
[CATransaction setCompletionBlock: ^{
// Code to be executed upon completion
}];
[tableView insertRowsAtIndexPaths: indexPaths
withRowAnimation: UITableViewRowAnimationAutomatic];
[tableView endUpdates];
[CATransaction commit];
迅速
CATransaction.begin()
tableView.beginUpdates()
CATransaction.setCompletionBlock {
// Code to be executed upon completion
}
tableView.insertRowsAtIndexPaths(indexArray, withRowAnimation: .Top)
tableView.endUpdates()
CATransaction.commit()
- 3 回答
- 0 关注
- 985 浏览
添加回答
举报