iOS UITableView reloadData刷新的动画

关于tableView的刷新动画一般熟知的刷新行或段的动画,而刷新全部数据源的reloadData动画UITableView却没有提供。本次来mark下利用转场动画CATransition制作reloadData时的动画效果。

使用场景:问卷调查翻页时,无需创建多个控制器无限压栈,通过一个页面只刷新tableView数据源达到翻页的效果。


/*!
 @brief 跳转下一页
 */
-(void)jumpToNext{
    if (curIndex < (questions.count-1)) {
        curIndex++;
        //动画
        CATransition * animation = [CATransition animation];
        animation.type = kCATransitionReveal;  //动画切换风格(揭开效果)
        animation.subtype = kCATransitionFromRight; //动画切换方向(右侧)
        animation.duration = 0.4f;
        [_tableView.layer addAnimation:animation forKey:nil]; //“key”可能是任何字符串,nil指针也是一个有效的键
        
        [_tableView reloadData];
        
        if(curIndex == (questions.count-1)){
            [stepControl setRightBtnSubmit]; //如果翻到最后一页,改变右button为提交
        }
    }else if(curIndex == (questions.count-1)){
        //处于最后一页,点击提交按钮的操作
    }
}

/*!
 @brief 返回上一页
 */
-(void)popToLast{
    if (curIndex == (questions.count-1)) {
        [stepControl setRightBtnNormal]; //如从最后一页点击上一步,改变右button为xia'yi'bu
    }
    if (curIndex>0) {
        curIndex--;
        //动画
        CATransition * animation = [CATransition animation];
        animation.type = kCATransitionMoveIn;  //动画切换风格(慢慢进入并覆盖效果)
        animation.subtype = kCATransitionFromLeft; //动画切换方向
        animation.duration = 0.3f;
        [_tableView.layer addAnimation:animation forKey:nil];
        
        [_tableView reloadData];
    }
}


猜你喜欢

转载自blog.csdn.net/txz_gray/article/details/78779807