我们在最新项目中有一个关卡视图。它包括作为UICollectionViewCells的级别标记和各种用于有趣装饰的UICollectionReusableView。
我们希望能够放大/缩小(这是一张大地图)。我曾希望我可以使用内部的UIScrollView来实现这一点,但是,你无法自己缩放......只是一个子视图。
无论如何,在我缩放时单独缩放和重定位每个元素之外还有吗?感觉它应该是一种常见的东西,因此可以提供更“内置”的解决方案。
答案 0 :(得分:0)
您是否考虑过在UIScrollView中嵌入UICollectionView? 这听起来有点简单,但是 我遇到了类似的问题,尝试了这个,是的,它确实有效。
您必须将UICollectionView的框架设置为其自己的上下文大小 (从UICollectionViewLayout调用collectionViewContentSize), 所以collectionView不再滚动了。 它也禁用了所有的单元重用,所以这可能不是你想要的。 但另一方面,有一些用例,它更便宜,更快, 预先渲染所有视图而不是调用dequeueReusableCellWithReuseIdentifier: 每个滚动动作。也许你的地图应用程序可以从中受益。
我确信有更复杂的解决方案,外部滚动视图 只有缩放和集合视图负责滚动。 也许子类化UIScrollView并为panGestureRecognizer返回nil可以工作, 但这只是猜测。