我正在尝试在UICollectionView上实现缩放效果。为了达到预期的效果,我想做两件事:
第一部分是直截了当的,现在我正在进入第二部分。
我的策略是在手势开始时找到从collectionView内容的边缘到捏的中心的比例距离,然后确保“比例点”(实际值将根据比例改变)保持不变当触摸位置改变时,与夹点的中心对齐。
无论如何,执行此操作的代码是这样的(不包括缩放代码)
CGPoint pinchCenter = [pincher locationInView:self.collectionView];
CGFloat ContentXToAlignWithPinch = self.collectionView.contentSize.width * proportionalXInContent;
CGFloat contentOffsetX = ContentXToAlignWithPinch - pinchCenter.x;
[self.collectionView setContentOffset:CGPointMake(contentOffsetX, 0) animated:NO];
NSLog(@"pinchCenter.x is %", pinchCenter.x);
但是当我退出pinchCenter.x时,我得到了这个:
2013-05-10 11:42:08.015 DMMS[20189:907] pinchCenter.x is 1548.000000
2013-05-10 11:42:08.036 DMMS[20189:907] pinchCenter.x is 203.000000
2013-05-10 11:42:08.041 DMMS[20189:907] pinchCenter.x is 1560.000000
2013-05-10 11:42:08.062 DMMS[20189:907] pinchCenter.x is 204.000000
2013-05-10 11:42:08.083 DMMS[20189:907] pinchCenter.x is 1570.000000
2013-05-10 11:42:08.102 DMMS[20189:907] pinchCenter.x is 212.000000
2013-05-10 11:42:08.120 DMMS[20189:907] pinchCenter.x is 1588.000000
2013-05-10 11:42:08.137 DMMS[20189:907] pinchCenter.x is 216.000000
2013-05-10 11:42:08.156 DMMS[20189:907] pinchCenter.x is 1593.000000
2013-05-10 11:42:08.175 DMMS[20189:907] pinchCenter.x is 218.000000
为什么这个pinchCenter.x像这样跳来跳去?在我的假设中,uipinch手势识别器上的locationInView给出了捏的中间位置,这是不正确的吗?
任何帮助非常感谢