我想让这个动画将单元格展开成全屏。我不完全明白我做错了什么。它会扩展单元格但不会扩展到全屏
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let item = collectionView.cellForItem(at: indexPath) as! CustomViewCell
let screensize = UIScreen.main.bounds.size
UIView.animate(withDuration: 1.0,delay: 0,
usingSpringWithDamping: 0.5,
initialSpringVelocity: 6.0, animations: {() -> Void in
item.center.x = self.view.center.x
item.center.y = self.view.center.y
item.transform = CGAffineTransform(scaleX: screensize.width/item.frame.size.width, y: screensize.height/item.frame.size.height)
最佳答案
您的 Collection View 单元与您的 View
处于不同的坐标系中。
这意味着当您的项目位于 view.center
时,它可能不会出现在 View 的中心。
您需要将 view.center
从 View 的坐标系转换为 Collection View 的坐标系,或者任何一个 View 是您的单元格的父 View 。
let point = view.convert(view.center, to: collectionView)
item.center.x = point.x
item.center.y = point.y
关于ios - 我想知道为什么这个动画没有填满整个屏幕。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935244/