美文网首页
OC/swift中tableView实现停靠动画

OC/swift中tableView实现停靠动画

作者: HJXu | 来源:发表于2016-07-19 10:48 被阅读144次

    停靠动画在iOS上面实现起来实际上是非常简单的

    OC中代码:

    -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //设置Cell的动画效果为3D效果
        cell.layer.transform = CATransform3DMakeTranslation(0, 100, 1);
        //最终动画形式展示
        [UIView animateWithDuration:0.5 animations:^{
            cell.layer.transform = CATransform3DIdentity;
        }];
    }
    

    友情提醒:这样做的话在向上拉的时候停靠动画是开始时cell间距大,结束时cell 间距变为正常.但是向下拉的时候,开始间距小,结束时cell间距变为正常,如果希望达到跟向下时候一样的效果,需要判断当前是向上还是向下拉的手势.如果向下,y=100,如果向上y=-100我目前的做法是设置了一个oldoffsetY的属性,判断当前的偏移量跟这个属性的差值来决定y值设为多少.

    swift中代码

     func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {   
         
    if indexPath.section == 0 && (indexPath.row == 0 || indexPath.row == 1) 
    {            return      
      }      
      if isAnimation {            
          startAnimation(cell, offsetY: 80, duration: 1.0)      
      }  
      }    
    
    private func startAnimation(view: UIView, offsetY: CGFloat, duration: NSTimeInterval) {        
    
    view.transform = CGAffineTransformMakeTranslation(0, offsetY)  
          UIView.animateWithDuration(duration, animations: 
    { () -> Void in            view.transform = CGAffineTransformIdentity       
     }) 
       }
    

    相关文章

      网友评论

          本文标题:OC/swift中tableView实现停靠动画

          本文链接:https://www.haomeiwen.com/subject/fsymjttx.html