2014-10-08 2 views
1

새로운 UITableViewCell이 처음 나타날 때이를 표시하기 위해 Google + 애니메이션과 유사한 기능을 구현하려고했습니다. UITableViewCell 애니메이션이 깨지는 UITableView 터치 감지 및 스크롤

내가 뭘하는지입니다 :

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if([[self serverFetchControllerForTableView:tableView] hasDataAtIndexPath:indexPath]) 
    { 
     if (![[self shownIndexesForTableView:tableView] containsObject:indexPath]) { 
      [[self shownIndexesForTableView:tableView] addObject:indexPath]; 

      UIView* view = [cell contentView]; 
      view.layer.transform = self.initialTransformation; 
      view.layer.opacity = 0.0; 

      [UIView animateWithDuration:ANIMATION_CELL_APPEARANCE_TIME animations:^{ 
       view.layer.transform = CATransform3DIdentity; 
       view.layer.opacity = 1; 
      }]; 
     } 
    } 
} 

//initial transformation looks like that 
CGFloat rotationAngleRadians = ANIMATION_CELL_APPEARANCE_ANGLE_DEG * (M_PI/180); 
CATransform3D transform = CATransform3DIdentity; 
transform = CATransform3DRotate(transform, rotationAngleRadians, 1.0, 0.0, 1.0); 
transform = CATransform3DTranslate(transform, ANIMATION_CELL_APPEARANCE_X, ANIMATION_CELL_APPEARANCE_Y, 0.0); 
self.initialTransformation = transform; 

모든 영상의 측면에서 작동하지만, 그 세포가 나타나는 동안, 나는 jQuery과 스크롤을 완전히 제어 할 잃고 - 나는 스크롤 중지 세포를 건드릴 수 없어 또는 애니메이션이 끝날 때까지 그 중 하나를 선택하십시오.

누구든지 내가이 문제를 해결하기 위해 여기서 더 잘할 수있는 제안이 있습니까?

같은 문제는 여기에서 찾을 수 있습니다 : http://www.raywenderlich.com/49311/advanced-table-view-animations-tutorial-drop-in-cards

가 완전히 손실 3.0 제어 TipInCellAnimator 하나에 3.0seconds 시간을 넣어보십시오.

답변

2

animateWithDuration... 메서드 중 하나를 사용하는 애니메이션의 일반적인 동작입니다. 애니메이션 중에 사용자 상호 작용을 원하면 animateWithDuration:delay:options:animations:completion:을 사용하고 UIViewAnimationOptionAllowUserInteraction을 옵션으로 전달하십시오. 애니메이션에 어떤 영향을 줄지는 모르겠지만 사용자 상호 작용이 가능해야합니다.

+0

좋습니다! 수업은 :) –