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

  • 相关阅读:
    学了这些,你就算入门DIV+CSS了(转)
    【转】Web service是什么?
    [转]MongoDB插入和查询操作
    【转】安装m2e最佳方案
    XDS框架基本事务及其Soap消息实例
    数据表改变之后数据的迁移
    HL7 PID (Patient Identification) Segment(HL7规定的PID字段)
    海量数据库的设计
    【转】基于Axis2开发WebService
    【转】JAVA 调用Web Service的方法
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5858669.html
Copyright © 2011-2022 走看看