直接上代码:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
cell.contentView.transform=CGAffineTransformMakeTranslation(KVIEWWIDTH, 0);
CATransform3D transform = CATransform3DIdentity;
// transform = CATransform3DRotate(transform, 0, 0, 0, 1); // 渐变
transform = CATransform3DScale(transform, 0, 0, 0); // 左->右
// transform = CATransform3DTranslate(transform, -200, 0, 0);// 变大+弹簧效果
cell.layer.transform = transform;
cell.layer.opacity = 0.0;
[UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.4 initialSpringVelocity:4 options:UIViewAnimationOptionCurveEaseInOut animations:^{
cell.layer.transform = CATransform3DIdentity;
cell.layer.opacity = 1;
} completion:nil];
}
将这段代码放到带 UITableView的VC中去即可,若是 UICollectionView ,同理
-(void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
cell.contentView.transform=CGAffineTransformMakeTranslation(KVIEWWIDTH, 0);
CATransform3D transform = CATransform3DIdentity;
// transform = CATransform3DRotate(transform, 0, 0, 0, 1); // 渐变
transform = CATransform3DScale(transform, 0, 0, 0); // 左->右
// transform = CATransform3DTranslate(transform, -200, 0, 0);// 变大+弹簧效果
cell.layer.transform = transform;
cell.layer.opacity = 0.0;
[UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.4 initialSpringVelocity:4options:UIViewAnimationOptionCurveEaseInOut animations:^{
cell.layer.transform = CATransform3DIdentity;
cell.layer.opacity = 1;
} completion:nil];
}
UICollectionView 自带移动item功能,(iOS9.0后可用)
- (BOOL)collectionView:(UICollectionView *)collectionView canMoveItemAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(9_0);
- (void)collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath*)destinationIndexPath NS_AVAILABLE_IOS(9_0);
我们项目中用到了这个移动功能,长按+动画+移动 ,效果不错。下一次贴代码