我有一个可以使用UIPanGestureRecognizer拖动的UIView对象,但我希望它只能向上移动屏幕的3/4。我不想让它被剪掉,而是想到达某个点,不能再拖下去了。到目前为止,我只允许它在Y轴上移动(这是所需的)。
- (IBAction)panGesture:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}谢谢你的帮助。
发布于 2012-02-07 13:13:57
因此,只需检查新的Y坐标是否会太小。如果视图太小,请不要更改:
- (IBAction)panGesture:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
CGPoint center = recognizer.view.center;
center.y += translation.y;
if (center.y < self.yMin)
return;
recognizer.view.center = center;
}发布于 2012-11-22 16:34:06
它对我来说很好。
CGPoint currentTouchPoint = [gesture translationInView:self.bottomView];
if (fabsf(currentTouchPoint.x) > fabsf(currentTouchPoint.y)) {
// avoid horizontal movement of pan geuture.
return;
}谢谢,
纳维恩·山
发布于 2012-02-07 12:25:32
实现下面的手势委托,并检查其中的条件。从该代理返回YES或NO将使手势处于活动和非活动状态。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;https://stackoverflow.com/questions/9169949
复制相似问题