2015-07-03 112 views
1

我想在用户触摸时使用我的单元格进行翻转动画。当单元翻转时,背面应显示另一个图像。UICollectionViewCell翻转动画

我已经解决了这个问题,把一个coverimage放在我的单元格内容之上,这个内容将被隐藏或者不被隐藏。

如何强制单元格执行翻转动画?我只能使它重新加载单元格,但这有副作用。

如何强制翻转动画,并在转动180度时更改单元格的状态?

这里是我的UICollectionViewCell内的代码包含动画:

func makeImageVisible(visible:Bool, animated: Bool){ 

     if(animated){ 
      UIView.transitionWithView(self.contentView, duration: 0.5, options: UIViewAnimationOptions.TransitionFlipFromLeft, animations: {() -> Void in 
        self.coverImageView.hidden = visible 
      }, completion: nil) 
     } 
     else{ 
      self.coverImageView.hidden = visible 
     } 
    } 

细胞中包含了由coverimage覆盖的一些看法。取决于隐藏或不隐藏的状态。

这里是我的cellForIndexPath法:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("MemoryGameCell", forIndexPath: indexPath) as! MemoryGameCell 

    cell.setImage(self.image!) 
    cell.makeImageVisibile(self.imageIsVisible(indexPath), animated: self.imageIsTemporaryVisible(indexPath)) 

    return cell 
} 

如果电池被触动我把它放在visiblecells阵中并重新加载的CollectionView。我直接调用makeImageVisible来重试加载collectionview,但没有任何反应。 任何想法可能是什么问题?

+0

只需在UITableViewCell中有一个子视图。在didSelectRow上使用 + transitionWithView:duration:options:animations:completion:来在子视图上提供动画。作为一个选项,传递TransitionFlipFromBottom并用动画块中的新视图替换旧视图。 – TheCodingArt

+0

您也可以使用CATransform图层进行自定义UIAnimation。只需旋转视图图层的一半(视图的y轴朝向屏幕以使视图不可见),然后用新视图换出视图并适当旋转。 – TheCodingArt

+0

我编辑了我的帖子并添加了我到目前为止的代码。对不起,我起初写了TrableViewCell,但意思是CollectionviewCell。 – netshark1000

回答

1

你可以在UITableView的didSelectRowAtIndexPath委托方法上做一个UIView动画。这里是你应该呼叫的方法:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath  indexPath: NSIndexPath) { 
     if(animated){ 
      UIView.transitionWithView(self.contentView, duration: 0.5, options: UIViewAnimationOptions.TransitionFlipFromLeft, animations: {() -> Void in 
        self.coverImageView.hidden = visible 
      }, completion: nil) 
     } 
     else{ 
      self.coverImageView.hidden = visible 
     } } 
+0

我试过了,但没有任何反应。该视图不会变成动画。开始动画的唯一方法是重新加载单元格并从那里开始动画。但后来我发现了上一次显示的动画单元格的图像出错。 – netshark1000