如何约束子视图,使其不能被拖动到其父视图的边界之外。 (IOS)

时间:2012-11-24 08:12:41

标签: xcode uiview uigesturerecognizer subview

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

1 个答案:

答案 0 :(得分: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是父视图的原点,那么子视图永远不会超过该边界。您需要对原始yx + width以及y + height执行相同操作,以便从各方做出约束。

希望这会有所帮助。