0

如何约束子视图在其父视图中的位置。我在 UIView 中有一个子视图。可以通过手势识别器拖动子视图。如何约束子视图,使其不能被拖出父视图的边界。

4

1 回答 1

0

要约束可拖动视图,您需要在移动它时检查它的位置,然后在超出边界时将其强制到受约束的位置。所以假设你使用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;
    }
}

所以假设boundaryX是父视图的原点,那么这样子视图将永远不会超过该边界。您需要对原点执行相同的操作,并y从各个方面进行约束。x + widthy + height

希望这可以帮助。

于 2012-11-24T08:42:21.760 回答