Как я могу ограничить подпредставление, чтобы оно не могло быть перетащено за пределы родительского представления. (IOS)

Как ограничить положение подпредставления в его родительском представлении. У меня есть подпредставление в UIView. Подвид можно перетащить через распознаватель жестов. Как я могу ограничить подпредставление, чтобы оно не могло быть перетащено за пределы родительского представления.

1 ответ

Решение

Чтобы ограничить перетаскиваемый вид, вам нужно проверить его положение при перемещении, а затем принудительно установить его в ограниченное положение, если оно выходит за границы. Итак, если вы используете touchesMoved:

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

    ...

    CGRect frame = mySubview.frame; 
    if (frame.origin.x < boundaryX) { //frame exceeds the horizontal boundary
        frame.origin.x = boundaryX;
        mySubview.frame = frame;
    }
}

так что если предположить, что borderX является источником родительского представления, то таким образом подпредставление никогда не превысит эту границу. Вы должны сделать то же самое для происхождения y а также x + width а также y + height делать ограничения со всех сторон.

надеюсь это поможет.

Другие вопросы по тегам