OC/swift中tableView实现停靠动画

停靠动画在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实现停靠动画)