0

在我的应用程序中有一些 UICollectionViewCells 显示一些信息。

当用户点击其中一个按钮时,我用这段代码翻转点击的单元格:

UICollectionViewCell* cell = [collectionView cellForItemAtIndexPath:indexPath];

[UIView animateWithDuration:1.0
                      delay:0
                    options:(UIViewAnimationOptionAllowUserInteraction)
                 animations:^
                {
                     NSLog(@"starting animation");

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

在单元格翻转后(这是正确的),单元格是完全白色的。

关于两个问题是: - 为什么翻转后单元格是白色的。由于fromView等于toView,它不应该显示原始信息吗?- 在单元格背面显示不同内容的最佳方式是什么。我想 UICollectionViewCell 没有链接 cell.contentViewBack ...

4

1 回答 1

1

你现在可能已经有了,但是,

不确定这是否是“最佳”方法,我通过创建自定义 UICollectionViewCell、在自定义单元格中有 2 个 UIImageViews 并在动画中定位这些视图来实现这一点(这仅适用于你想在你的牢房里有 - 可能有帮助,可能没有,任何人)

创建新的 UICollectionViewCell 类(我的称为 CardCVCell) 在 CardCVCell.h 中放入 UIImageView 插座

@property (strong, nonatomic) IBOutlet UIImageView *cardImage;
@property (strong, nonatomic) IBOutlet UIImageView *cardBackImage;

我使用了故事板——在那里我在场景的集合视图中的单元格上输入了“CardCVCell”作为我的自定义类。

在该场景的视图控制器中,我有上面的代码,但是我在自定义单元格中使用 UIImageViews 来获取转换中的视图(注意,您必须将 UICollectionViewCell 转换为自定义类

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
// animate the cell user tapped on
CardCVCell  *cell = (CardCVCell *)[collectionView cellForItemAtIndexPath:indexPath];

         [UIView transitionFromView:cell.cardBackImage
                             toView:cell.cardImage
                           duration:.5
                            options:UIViewAnimationOptionTransitionFlipFromRight
                         completion:^(BOOL finished)
          {
              if (finished) {
                  NSLog(@"animation end");
              }

          }
    ];    
}

如果不是您,我希望这对某人有所帮助,如果我可以帮助让我知道。

干杯

于 2013-01-30T15:09:46.617 回答