有什么想法,如何为新的Shortcuts应用程序为collectionViewCells应用this很酷的效果?
答案 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)
}
}
}
}
我希望它将对您有帮助。