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...

  • 相关阅读:
    PHPStorm--美化
    Laravel5.1 模型--关联关系(复杂)
    HTML5 getUserMedia/AudioContext 打造音谱图形化
    如何在终端实时展现当前运行的git分支
    关于ionic的跨域问题
    ionic插件安装与卸载
    虚拟机调试ionic项目
    ionic双击退出键退出APP
    npm install 镜像
    对Date的扩展,将 Date 转化为指定格式的String
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5858669.html
Copyright © 2011-2022 走看看