放大UICollectionView - locationInView返回奇怪的值

时间:2013-05-10 18:43:49

标签: ios uiscrollview uigesturerecognizer uicollectionview

我正在尝试在UICollectionView上实现缩放效果。为了达到预期的效果,我想做两件事:

  1. 有效扩展布局
  2. 确保从两个手指捏住的pt中伸出“伸出”。
  3. 第一部分是直截了当的,现在我正在进入第二部分。

    我的策略是在手势开始时找到从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给出了捏的中间位置,这是不正确的吗?

    任何帮助非常感谢

0 个答案:

没有答案