我想限制黑色图像 UIView 在 girlimageview 范围内移动。我不应该移动到 girlimageview 之外。
我的 girlimageview 是带边框的静态图片 (5,0,310,320)
我正在使用 UIGestureRecognizer
在 imageview 上移动黑色图像。
我尝试使用以下代码使用 UIPanGestureRecognizer
来限制但无法限制它。
UIPanGestureRecognizer *panTagGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[panTagGesture setDelegate:self];
[blackanimateview addGestureRecognizer:panTagGesture];
-(void) handlePan:(UIGestureRecognizer*)panGes{
CGPoint point = [panGes locationInView:girlimageview];
if (point.x < girlimageview.bounds.size.width) {
CGRect newframe = CGRectMake(point.x, point.y, blackanimateview.frame.size.width, blackanimateview.frame.size.height);
blackanimateview.frame = newframe;
}
if (point.y < girlimageview.bounds.size.height-160) {
CGRect newframe = CGRectMake(point.x, point.y, blackanimateview.frame.size.width, blackanimateview.frame.size.height);
blackanimateview.frame = newframe;
}
}
如有任何帮助,我们将不胜感激。
最佳答案
- (void)handlePan:(UIGestureRecognizer*)panGes {
CGPoint point = [panGes locationInView:girlimageview];
CGRect girlImageViewBounds = girlimageview.bounds;
CGRect blackAnimateViewFrame = blackanimateview.frame;
CGFloat newX = MIN(point.x, girlImageViewBounds.size.width - blackAnimateViewFrame.size.width);
newX = MAX(newX, 0.0f);
CGFloat newY = MIN(point.y, girlImageViewBounds.size.height - blackAnimateViewFrame.size.height);
newY = MAX(newY, 0.0f);
blackAnimateViewFrame.origin.x = newX;
blackAnimateViewFrame.origin.y = newY;
blackanimateview.frame = blackAnimateViewFrame;
}
这是代码。如果黑色 View 是女孩图片 View 的 subview ,它应该可以工作。
关于ios - 如何将手势限制在 UIImageView 的范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631451/