swift - 动画 Collection View swift

标签 swift uicollectionview autoresize

您好,我正在尝试为 CollectionView 制作动画。它需要改变位置x和他的宽度。

UIView.animate(withDuration: 1, delay: 0, options: .beginFromCurrentState, animations: {
    collectionView.frame = CGRect(x: 500, y: 0, width: 1000, height: 700)
})

但问题是单元格中的图像没有调整大小,我认为单元格也是如此。 您有解决方案吗?

最佳答案

  1. 创建一个简单的自定义流程布局。
  2. 将此流布局类分配给 Storyboard 中的 Collection View 。

    class CustomFlowLayout: UICollectionViewFlowLayout {
        override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool {
           return true
        }
    }
    

    并且动画约束比框架更好。为此:

  3. 制定导出宽度和前导约束。
  4. 更改它们在 UIView 动画 block 中的常量。
  5. 不要忘记在动画 block 的末尾调用 self.layoutIfNeeded()。

关于swift - 动画 Collection View swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45715398/

相关文章:

ios - 应用程序在 Debug 方案上崩溃,但在 Betta 方案上运行良好 - 多个目标

iphone - IOS:在 UICollectionView 单元格上添加叠加图像

arrays - 如何在 Swift 的 View Controller 类中与 Collection View 委托(delegate)共享数据

ios - 在 UICollectionView 中显示错误的图像

jquery - 根据所选选项的宽度自动调整 SELECT 元素的大小

ios - "autoresize = W+H;"在 UIView 对象的 NSLog 输出中意味着什么

JQuery UI 对话框 autoResize 在 Chrome 中不起作用

ios - WKWebView 底部约束集但不起作用

ios - 调整容器 View 的高度以匹配嵌入式 UITableViewController

ios - Firebase Analytics - 无法仅记录自定义事件