当前位置: 代码迷 >> 综合 >> 给TableView添加一点动画效果
  详细解决方案

给TableView添加一点动画效果

热度:79   发布时间:2023-09-21 02:36:38.0

直接上代码:


- (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(KVIEWWIDTH0);

        CATransform3D transform = CATransform3DIdentity;

//        transform = CATransform3DRotate(transform, 0, 0, 0, 1);   // 渐变

        transform = CATransform3DScale(transform, 000);       // ->

//        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);


我们项目中用到了这个移动功能,长按+动画+移动 ,效果不错。下一次贴代码


  相关解决方案