gpt4 book ai didi

ios - 捏合手势以展开 UICollectionView Cell

转载 作者:可可西里 更新时间:2023-11-01 04:49:12 25 4
gpt4 key购买 nike

我正在开发的应用程序需要与 iPad 上的照片应用程序非常相似的布局。有一个 UIView 网格,用户应该能够将手指捏合到一个网格中,当他们捏合时,观察该 View 的大小逐渐变大,直到全屏显示。

到目前为止,我已经设置了一个 UICollectionViewController 和一个自定义 Collection View 单元格。我将捏合手势识别器添加到自定义单元格中。当用户捏合时,单元格会变大。

我现在遇到的问题是,单元格在扩展时并未叠加在所有其他单元格之上。相反,它隐藏在其后加载的单元格下。

我在想解决方案可能是当 Collection View Controller 识别到捏合手势时,它可以隐藏被捏合的单元格。然后,创建一个新的 UIView,它是 Collection View 单元格的副本,其边界等同于放置单元格的位置。然后,这个 View 可以是可以收缩、旋转和平移的 View 。一旦用户结束手势, View 就会动画回到原来的单元格位置,然后设置为 nil

但是,我不确定这是否是最佳解决方案,也许有一些简单的方法可以确保某个单元格位于 Collection View 中所有其他单元格的顶部。

我当前如何缩放单元格的实现代码片段如下所示。这是导致单元格在扩展时隐藏在后面的单元格下面的问题。

 @objc func scalePiece(_ gestureRecognizer : UIPinchGestureRecognizer) {
guard gestureRecognizer.view != nil else { return

if gestureRecognizer.state == .began ||
gestureRecognizer.state == .changed {

gestureRecognizer.view?.transform = (gestureRecognizer.view?.transform.scaledBy(x: gestureRecognizer.scale, y: gestureRecognizer.scale))!

gestureRecognizer.scale = 1.0

}
}

最佳答案

补救单元格落后于其他单元格的一种非常简单的可能性是在 Collection View 上调用 bringSubviewToFront(_:),传递单元格。

警告 但是,我不确定这是否是最佳:因为您并不真正拥有单元格/ Collection View 的层次结构,一般来说您应该不要像这样直接触摸 subview 。

一个密切相关的可能性——不是那么简单,但可能更健壮,因此更可取——是自定义布局。由于 Collection View 的 UICollectionViewLayout 对象 can specify the zIndex of a particular cell ,您可以在捏合手势开始时重新加载单元格,并仅更新该单元格的 Z 索引。

关于ios - 捏合手势以展开 UICollectionView Cell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com