ios - 我想知道为什么这个动画没有填满整个屏幕。

标签 ios swift

我想让这个动画将单元格展开成全屏。我不完全明白我做错了什么。它会扩展单元格但不会扩展到全屏

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/

相关文章:

ios - 自定义单元格清除背景?

ios - 将 viewModel 设置为 TableView 数据源是否错误?

ios - 在info.plist中是否必须添加NSPhotoLibraryUsageDescription?

ios - 在IOS项目中存储数据

ios - 如何在泛型函数中使用 swift 泛型可解码协议(protocol)

ios - Xcode 自动完成建议 NSArray getter 神秘的 "songsAtIndexes"

android - Google Analytics for iOS 仅在 WiFi 可用时发送跟踪信息,否则发送至缓存

swift - 将 Swift 编译为 WebAssembly

ios - SKShapeNode Circle 没有出现圆形

ios - 无法使用 SwiftMailGun 从 UITextField 发送文本