UI基础--封装cell滑动时的动画

Posted Tracy-Mcgrady

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UI基础--封装cell滑动时的动画相关的知识,希望对你有一定的参考价值。

新建一个类:CellDisplay:NSObject

.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface CellDisplay : NSObject

+(void)tableView:(UITableView *)tableView cell:(UITableViewCell *)cell IndexPath:(NSIndexPath *)indexPath;


@end
.m

#import "CellDisplay.h"

@implementation CellDisplay

+(void)tableView:(UITableView *)tableView cell:(UITableViewCell *)cell IndexPath:(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;
    }];
    
    
    //CollectionCell 动画
    /*
     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) {
     
     }];
     */
    
}

@end

在tableview的协议方法中调用即可:

- (void)tableView:(UITableView *)tableView willDisplayCell:(nonnull UITableViewCell *)cell forRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
    
    [CellDisplay tableView:tableView cell:cell IndexPath:indexPath];
    
}

Ok...

 

以上是关于UI基础--封装cell滑动时的动画的主要内容,如果未能解决你的问题,请参考以下文章

cell 滑动实现旋转动画效果

如何在 UIView Like Swipeable TableView Cell 中制作类似于“滑动解锁”的动画

iOS之UI--彩虹动画进度条学习和自主封装改进

Gmail 三段动画场景的完整工作示例?

Gmail 三段动画场景的完整工作示例?

iOS开发UI篇—核心动画(UIView封装动画)