0
如何約束子視圖在其父視圖中的位置。我有一個UIView內的子視圖。子視圖可以通過手勢識別器拖動。我怎樣才能限制子視圖,以便它不能被拖到它的父視圖的邊界之外。我如何約束一個子視圖,以便它不能被拖到它的父視圖邊界之外。 (iOS)
如何約束子視圖在其父視圖中的位置。我有一個UIView內的子視圖。子視圖可以通過手勢識別器拖動。我怎樣才能限制子視圖,以便它不能被拖到它的父視圖的邊界之外。我如何約束一個子視圖,以便它不能被拖到它的父視圖邊界之外。 (iOS)
要約束可拖動的視圖,您需要在移動它時檢查它的位置,如果它超出了邊界,則強制它到受約束的位置。因此,假如你使用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
執行相同的操作,以完成各方面的約束。
希望這有助於。
如果父視圖是一個圓圈怎麼辦? –