zoukankan      html  css  js  c++  java
  • 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...

  • 相关阅读:
    Ubuntu
    「日记」抑郁症
    [Ubuntu] 运行.AppImage格式文件
    [Database]Oracle数据库中concat和||的区别
    [Database] 不知道表名和字段查找值=1234的数据.
    [Windows]卸载Office 2016密钥
    [经验]怎么删除“通过QQ/TIM发送到”右键菜单
    Venom- Eminem
    粪便中的粪臭素稀释了以后会变成花香味
    #宽带选择# V2EX讨论
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5858669.html
Copyright © 2011-2022 走看看