【发布时间】:2017-08-29 16:27:52
【问题描述】:
我有一个UICollectionView,里面有很多单元格(大约 5k+)。我想捏一下放大/缩小。我每次都尝试invalidateLayout。它真的很慢。所以我想使用CGAffineTransformMakeScale,但我不知道如何在此之后滚动。
我的代码是:
- (void)didReceivePinchGesture:(UIPinchGestureRecognizer *)gesture {
static CGFloat scaleStart;
if (gesture.state == UIGestureRecognizerStateBegan) {
scaleStart = self.venueLayoutZoom;
}
else if (gesture.state == UIGestureRecognizerStateChanged) {
CGAffineTransform transform = CGAffineTransformMakeScale(self.venueLayoutZoom, self.venueLayoutZoom);
self.activeCollectionNode.view.transform = transform;
self.activeCollectionNode.view.contentSize = CGSizeMake(318 * self.venueLayoutZoom, 500 * self.venueLayoutZoom);
}
}
但是当放大时我不能左右滚动。帮帮我。
【问题讨论】:
-
@ReinierMelian 感谢您的回复,我已经尝试过了。没用
-
你能把你的collectionView放在UIScrollView里面,让它不可滚动吗?
-
@ReinierMelian 你是什么意思?
-
我已经完成了这项工作,但是使用了外部 UIScrollView 并调整了对俯仰手势动作的内部 tableView 约束,我在问该解决方案是否适用于您的场景
-
@ReinierMelian 你能告诉我一些代码或示例项目吗?
标签: ios objective-c uicollectionview cgaffinetransform cgaffinetransformscale