Search code examples
iosdraggableuitouchboundary

Boundary for draggable image ios


I'm trying to create a draggable image, but i'm trying to confine it's dragging to within a small square rather than the full screen. Could someone tell me where i'm going wrong?. I've placed the code that I have so far below:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [[event allTouches] anyObject];
    if([touch view] == dot) {
        CGPoint location = [touch locationInView:self.view];
        dot.center = location;
        if (location.x >10) {
            location.x =10;
        } else if (location.x <10) {
            location.x = 10;
        }
        if (location.y >20) {
            location.y =20;
        } else if (location.y < 20) {
            location.y = 20;
        }      
    }
}

Solution

  • You are assigning location before you are making changes to it.

    Apply your limits to location first then assign it to dot.

    Also, your limits you are showing would lock your position to 10,20 since you are not allowing it to be more than 10 or less than 10. Likewise with 20.

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
        UITouch *touch = [[event allTouches] anyObject];
        if([touch view] == dot) {
            CGPoint location = [touch locationInView:self.view];
            location.x = MIN(MAX(location.x, 0),10);
            location.y = MIN(MAX(location.y, 0),20);
            dot.center = location;     
        }
    }