CollectionViewCell效果

时间:2018-09-17 22:38:19

标签: ios swift xcode

有什么想法,如何为新的Shortcuts应用程序为collectionViewCells应用this很酷的效果?

2 个答案:

答案 0 :(得分:1)

  

STEP-I:返回CollectionViewCell的大小

1。。在您的viewController中添加UICollectionViewDelegateFlowLayout委托

2。。实现委托方法

func collectionView( _ collectionView: UICollectionView,layoutcollectionViewLayout: UICollectionViewLayout,sizeForItemAtindexPath: IndexPath) -> CGSize {

  let yourPreferedWidth = self.collectionView.size.width - 20

  return CGSize(width: yourPreferedWidth , height: view.frame.width)
}
  

STEP-II:制作单元格的动画

您可以在collectionViewDelegate的 cellForItemAtIndexPath 中尝试此操作。

cell.transform = CGAffineTransform.init(scaleX: 1.1, y: 1.1)
UIView.animate(withDuration: 0.1, delay: 0.2, options: .curveEaseIn, animations: {
    cell.transform = CGAffineTransform.identity
}, completion: nil)

您可以控制放大或缩小,开始动画的延迟以及动画的时间。

答案 1 :(得分:1)

您可以在uiCollectionViewCell类中简单添加以下代码,并在uiCollectionView中查看效果。

class imgcollectioncell: UICollectionViewCell {

@IBOutlet weak var img: UIImageView!


override var isHighlighted: Bool{
    didSet{
        if isHighlighted{
            UIView.animate(withDuration: 0.5, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 1.0, options: .curveEaseOut, animations: {
                self.transform = self.transform.scaledBy(x: 0.75, y: 0.75)
            }, completion: nil)
        }else{
            UIView.animate(withDuration: 0.5, delay: 0.0, usingSpringWithDamping: 0.4, initialSpringVelocity: 1.0, options: .curveEaseOut, animations: {
                self.transform = CGAffineTransform.identity.scaledBy(x: 1.0, y: 1.0)
            }, completion: nil)
        }
    }
}  


 }

我希望它将对您有帮助。