首页 > 代码库 > UI基础--封装cell滑动时的动画
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滑动时的动画
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。