如何在子视图中约束子视图的位置。我在UIView中有一个子视图。子视图可以通过手势识别器拖动。如何约束子视图,使其不能被拖动到父视图的边界之外。
答案 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是父视图的原点,那么子视图永远不会超过该边界。您需要对原始y
和x + width
以及y + height
执行相同操作,以便从各方做出约束。