在特定区域移动UIView

时间:2014-11-08 01:53:09

标签: ios objective-c touch-event

我使用以下代码移动UIImageView

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touch.view];
    paddle.center = CGPointMake(location.x, paddle.center.y);
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self touchesBegan:touches withEvent:event];
}

效果很好,从左到右移动。但我无法弄清楚如何避免在屏幕上移动,我想移动它,但不要交叉屏幕的左右边缘。让我们说左起10像素,右起10像素。

1 个答案:

答案 0 :(得分:0)

首先,你是这样说的:

paddle.center = CGPointMake(location.x, paddle.center.y);

所以paddle在哪里,完全取决于你。如果您不希望它达到某个x值,请不要将其设置为该x值。

其次,永远不要在touchesBegan内致电touchesMoved

第三,使用UIPanGestureRecognizer,您会更开心,更安全。像这样的情况正是它的原因。