我试图将动画放在UITableViewCell的底部到顶部,为此可以正常工作:
-(void)tableView:(UITableView *)tableView willDisplayCell:(audioVcCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
cell.alpha =0.0;
UIView *cellContentView = [cell contentView];
CGFloat rotationAngleDegrees = -30;
CGFloat rotationAngleRadians = rotationAngleDegrees * (M_PI/180);
CGPoint offsetPositioning = CGPointMake(0, cell.contentView.frame.size.height*4);
CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DRotate(transform, rotationAngleRadians, -50.0, 0.0, 1.0);
transform = CATransform3DTranslate(transform, offsetPositioning.x, offsetPositioning.y, -50.0);
cellContentView.layer.transform = transform;
cellContentView.layer.opacity = 0.8;
[UIView animateWithDuration:3.0 delay:indexPath.row+3 usingSpringWithDamping:0.85 initialSpringVelocity:0.8 options:UIViewAnimationOptionCurveEaseInOut animations:^{
cellContentView.layer.transform = CATransform3DIdentity;
cellContentView.layer.opacity = 1;
cell.alpha=1.0;
} completion:^(BOOL finished) {
}];
}
在这里,我要显示每个单元格,间隔为2或3秒。目前,Cell将快速显示。提前致谢。
最佳答案
我通过@PhaniRaghu给出的想法解决了这个问题,我对他的回答做了一些更改,效果很好。
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, indexPath.row * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[UIView animateWithDuration:3.0
delay:indexPath.row
usingSpringWithDamping:0.85
initialSpringVelocity:0.8
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
cellContentView.layer.transform = CATransform3DIdentity;
cellContentView.layer.opacity = 1;
cell.alpha=1.0;
} completion:^(BOOL finished) {
}];
});
关于ios - UITableView WillDisplayCell方法在特定时间后调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45790433/