UITableViewCell動畫

當cell將要顯示時調用

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

函數(shù),可以在這里進行Cell內子控件屬性的修改,完成所需要的動畫效果。

cell動畫.gif

代碼:

@property (assign, nonatomic) CGFloat lastScrollOffset;
@property (assign, nonatomic) CGFloat move;
- (void)viewDidLoad {
    [super viewDidLoad];
    _move = [UIScreen mainScreen].bounds.size.width;
    _lastScrollOffset = 0;
}

下拉和上拖動畫加載的方向不同,先判斷手勢的的方向

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView != self.tableview) return;
    CGFloat y = scrollView.contentOffset.y;
    if (y > _lastScrollOffset) {//用戶往上拖動
        _move = [UIScreen mainScreen].bounds.size.width;
    } else {//用戶往下拖動
        _move = -[UIScreen mainScreen].bounds.size.width;
    }
    //存儲最后的y值
    _lastScrollOffset = y;
}
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSInteger baseRows = ceilf(CGRectGetHeight(self.tableview.bounds) / 100) - 1;
    CGFloat delay = indexPath.row <= baseRows ? 0.05f * indexPath.row : 0.01f;
    cell.alpha = 0.0;
    cell.transform = CGAffineTransformIdentity;
    CGFloat xMove = _move;
    cell.transform = CGAffineTransformMakeTranslation(xMove, 0);
    
    [UIView animateWithDuration:1.0f delay:delay usingSpringWithDamping:0.6 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        cell.alpha = 1.0;
        cell.transform = CGAffineTransformMakeTranslation(0, 0);
    } completion:^(BOOL finished) {
        
    }];
}

NSInteger baseRows = ceilf(CGRectGetHeight(self.tableview.bounds) / 100) - 1;中的100是cell的高度。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 我們在上一篇《通過代碼自定義不等高cell》中學習了tableView的相關知識,本文將在上文的基礎上,利用sto...
    啊世ka閱讀 1,538評論 2 7
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,257評論 4 61
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內容...
    i得深刻方得S閱讀 4,770評論 1 9
  • 關于企業(yè)的滲透測試流程 針對企業(yè)的網絡服務 前期交互Pre-Engagement Interaction 這個階段...
    青山i閱讀 1,300評論 0 14
  • 按照老規(guī)矩,羅列一下工具和平臺: MSP-EXP430F5229 開發(fā)板,自帶ez-FET仿真器 TI Compo...
    浮生一城閱讀 2,382評論 0 3