博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI基础--封装cell滑动时的动画
阅读量:5217 次
发布时间:2019-06-14

本文共 1825 字,大约阅读时间需要 6 分钟。

新建一个类:CellDisplay:NSObject

.h#import 
#import
@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...

 

转载于:https://www.cnblogs.com/LzwBlog/p/5858669.html

你可能感兴趣的文章
Linux C编程之十七 socket编程
查看>>
UVa 1616 - Caravan Robbers
查看>>
使用Python做科学计算初探
查看>>
[BZOJ4318]OSU!
查看>>
ContextLoaderListener - 运行原理
查看>>
HDU 5288 OO’s Sequence
查看>>
APP弱网测试 抓包软件就能用于模拟弱网(Fiddler、Charles)
查看>>
接口测试实例(Road)
查看>>
关于VR 应用设计的 8 个建议
查看>>
Linux inode 理解
查看>>
Python高级主题:Python ABC(抽象基类)
查看>>
VC++中CEdit控件实现回车换行
查看>>
UIKit 框架之UISegmentedControl
查看>>
hellow world
查看>>
第 14 章 结构和其他数据形式(函数指针)
查看>>
JavaScript事件机制
查看>>
深入理解HTTP协议、HTTP协议原理分析
查看>>
关于zookeeper部署的个数
查看>>
使用winmm.dll 获取麦克风声音数据
查看>>
flask 下载本地文件
查看>>