Как установить минимальное и максимальное значение у? - PullRequest
0 голосов
/ 08 февраля 2012

Я реализую перетаскиваемый UIView в моем приложении.Коды, с которыми я работал, но я хотел бы установить ограниченную область, которую UIView можно переместить.

Мои коды:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];

    if( [touch view] == camview)
    {
        CGPoint location = [touch locationInView:self.view;
        startX = camview.center.x;
        startY= location.y - camview.center.y;        
    }
}


- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [[event allTouches] anyObject];

    if( [touch view] == camview)
    {
        CGPoint location = [touch locationInView:self.view];
        location.y =location.y - startY;
        location.x = startX;
        camview.center = location;
    }
}

Так как я могу установить минимальное и максимальное значение yчто UIView можно перетаскивать?

Спасибо!

1 Ответ

1 голос
/ 08 февраля 2012

Если вы заинтересованы в том, чтобы рамка просмотра не выходила за пределы определенного значения y, вы можете сделать следующее:

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    CGFloat minY, maxY; //The position in your self.view you are interested in

    UITouch *touch = [[event allTouches] anyObject];

    if( [touch view] == camview)
    {
        CGPoint location = [touch locationInView:self.view];
        location.y = location.y - startY;
        location.y = MIN(location.y,maxY);   //Always <= maxY
        location.y = MAX(location.y,minY);   //Always >= minY
        location.x = startX;
        camview.center = location;
    }
}
...