限制我的UIPanGestureRecognizer

时间:2014-05-23 02:56:00

标签: ios cocoa-touch ios7

我有以下代码,它工作得很好,但我无法真正向自己解释。我的目标是将UIView从底部拖出,并在UIView的底部到达屏幕中心时停止移动。代码就是这样,但我仍然对我设置的限制(newCenter.y >= 0 && newCenter.y <= 284)如何工作感到困惑。

我对最新情况的看法是,当我开始将UIView从最底部向屏幕顶部拖动时,我newCenter.y在向上拖动时不断变化(减少)。但是当被拖动的视图底部到达屏幕中心时,是什么让它停止?在我接近0之前,视图停止拖动。

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

    CGPoint translation = [recognizer translationInView:self.view];
    CGPoint newCenter = CGPointMake(self.view.bounds.size.width / 2,
                                recognizer.view.center.y + translation.y);

    if (newCenter.y >= 0 && newCenter.y <= 284) {
        recognizer.view.center = newCenter;
        [recognizer setTranslation:CGPointZero inView:self.view];
    }
}

0 个答案:

没有答案