我正在开发的应用程序需要一个与iPad上的照片应用程序非常相似的布局。有一个
到目前为止,我已经设置了一个
我现在遇到的问题是,随着单元格的扩展,它并没有覆盖所有其他单元格。相反,它被隐藏在之后加载的单元格下面。
我想解决的办法是,当集合视图控制器识别到捏合手势时,它可以隐藏正在被捏合的单元格。然后,创建一个新的
但是,我不确定这是否是最佳解决方案,也许有一些简单的方法可以确保某个单元格覆盖在集合视图的所有其他单元格之上。
下面是我当前实现的一小部分代码片段,用于展示如何缩放单元格。这就是导致单元格在扩展时隐藏在后续单元格下面的问题所在。
UIView
的网格,用户应该能够将其缩小到单个视图中,并在缩小时观察该视图增大直至全屏。到目前为止,我已经设置了一个
UICollectionViewController
和一个自定义集合视图单元格。我将捏合手势识别器添加到了自定义单元格中。当用户进行捏合操作时,单元格会增大。我现在遇到的问题是,随着单元格的扩展,它并没有覆盖所有其他单元格。相反,它被隐藏在之后加载的单元格下面。
我想解决的办法是,当集合视图控制器识别到捏合手势时,它可以隐藏正在被捏合的单元格。然后,创建一个新的
UIView
,它是集合视图单元格的副本,其边界等于单元格所放置的位置。然后,这个视图就可以被捏合、旋转和平移。一旦用户结束手势,视图将只需动画返回到原始单元格位置,然后被设置为nil
。但是,我不确定这是否是最佳解决方案,也许有一些简单的方法可以确保某个单元格覆盖在集合视图的所有其他单元格之上。
下面是我当前实现的一小部分代码片段,用于展示如何缩放单元格。这就是导致单元格在扩展时隐藏在后续单元格下面的问题所在。
@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
}
}
bringSubviewToFront(_:)
吗?需要对集合视图本身的引用... 不完全确定其全部影响。 - jscs