美文网首页
给cell添加即将显示动画

给cell添加即将显示动画

作者: 鬣狗赛跑 | 来源:发表于2016-06-02 22:08 被阅读0次

    (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

       NSArray *array =  tableView.indexPathsForVisibleRows;

       NSIndexPath *firstIndexPath = array[0];

       //设置anchorPoint

       cell.layer.anchorPoint = CGPointMake(0, 0.5);

       //为了防止cell视图移动,重新把cell放回原来的位置

       cell.layer.position = CGPointMake(0, cell.layer.position.y);

       //设置cell 按照z轴旋转90度,注意是弧度

       if (firstIndexPath.row < indexPath.row) {

               cell.layer.transform = CATransform3DMakeRotation(M_PI_2, 0, 0, 1.0);

       }else{

           cell.layer.transform = CATransform3DMakeRotation(- M_PI_2, 0, 0, 1.0);

       }

       cell.alpha = 0.0;

       [UIView animateWithDuration:1 animations:^{

           cell.layer.transform = CATransform3DIdentity;

           cell.alpha = 1.0;

       }];

    }

    - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath{

       if (indexPath.row % 2 != 0) {

           cell.transform = CGAffineTransformTranslate(cell.transform, kScreenWidth/2, 0);

       }else{

           cell.transform = CGAffineTransformTranslate(cell.transform, -kScreenWidth/2, 0);

       }

       cell.alpha = 0.0;

       [UIView animateWithDuration:0.7 animations:^{

           cell.transform = CGAffineTransformIdentity;

           cell.alpha = 1.0;

       } completion:^(BOOL finished) {

       }];

    }

    相关文章

      网友评论

          本文标题:给cell添加即将显示动画

          本文链接:https://www.haomeiwen.com/subject/abpkdttx.html