2014-11-12 2 views
2

UICollectionView анимация флип анимации на методе didSelect должна переворачиваться с подробной информацией о ячейке со щелчком, и если пользователь хочет перейти к исходному представлению, он должен видеть в ячейке. Я используюUICollectionView cell didselect flip animation, View отсутствует

UICollectionViewCell* cell = [collectionView cellForItemAtIndexPath:indexPath]; 
    [UIView animateWithDuration:1.0 
          delay:0 
         options:(UIViewAnimationOptionAllowUserInteraction) 
        animations:^ 
    { 

     [UIView transitionFromView:cell.contentView 
          toView:cell.contentView 
          duration:.5 
          options:UIViewAnimationOptionTransitionFlipFromRight 
         completion:nil]; 
    } 
        completion:^(BOOL finished) 
    { 

    } 
    ]; 
+0

Вы можете разместить весь код в didselect –

ответ

2

В коде анимация убирает Вашу из поля зрения и показать на view.So, в коллекции, если просматривать содержимое удаляется то, как он вернулся. Итак, не удаляйте представление, просто скройте его.

Пожалуйста, используйте код ниже

CVCell* cell1 = (CVCell *)[collectionView cellForItemAtIndexPath:indexPath]; 
[UIView transitionWithView:cell1.contentView 
        duration:5 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^{ 

        if (cell1.isred) { 
        cell1.isred = NO; 
         cell1.greenview.hidden = NO; 
         cell1.redView.hidden=YES; 
        } else { 
         cell1.isred = YES; 
         cell1.greenview.hidden = YES; 
         cell1.redView.hidden=NO; 
        } 

       } completion:nil]; 

Greenview является первый взгляд и redview является второй, который добавляют в клетке. Теперь, когда fliped первой Greenview показана и redview скрыта и в следующий раз ViceVersa

Вы можете попробовать другие анимации

CATransition *animation = [CATransition animation]; 
    animation.delegate = self; 
    animation.duration = 2.6f; 
    animation.timingFunction = UIViewAnimationCurveEaseInOut; 
    animation.fillMode = kCAFillModeForwards; 
    animation.startProgress = 0.1; 
    animation.endProgress = 1.0; 
    animation.removedOnCompletion = YES; 
    animation.type = @"cube";//--- 
animation.subtype = (cell1.isred)?kCATransitionFromLeft:kCATransitionFromRight; 
[CATransaction setCompletionBlock:^{ 
        if (cell1.isred) { 
        cell1.isred = NO; 
         cell1.greenview.hidden = NO; 
         cell1.redView.hidden=YES; 
        } else { 
         cell1.isred = YES; 
         cell1.greenview.hidden = YES; 
         cell1.redView.hidden=NO; 
        } 
}]; 

[cell1.contentView.layer addAnimation:animation forKey:@"Cameraanimation"];