gpt4 book ai didi

iphone - 如何限制平移手势区域?

转载 作者:太空狗 更新时间:2023-10-30 03:58:55 26 4
gpt4 key购买 nike

我有我的 UIImageView 我有另一个 UIView 矩形。通过对 UIView 矩形应用平移手势,它也可以在 UIImageView 之外。我不想被拖到 UIImageView

之外

我试过下面的代码,但它不是这样工作的

-(void)handleMovementView:(UIPanGestureRecognizer *)recognizer
{
CGPoint movement;

if(recognizer.state == UIGestureRecognizerStateBegan || recognizer.state == UIGestureRecognizerStateChanged || recognizer.state == UIGestureRecognizerStateEnded)
{
CGRect rec = recognizer.view.frame;
CGRect imgvw = self.imgViewCrop.frame;
if((rec.origin.x >= imgvw.origin.x && (rec.origin.x + rec.size.width <= imgvw.origin.x + imgvw.size.width)))
{
CGPoint translation = [recognizer translationInView:recognizer.view.superview];
movement = translation;
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:recognizer.view.superview];
[self handleMovementForHandlers:movement];
}
}

}

如果我缓慢地应用 Pan 它会应用这个条件但是当我快速地应用它时它会超出 ImageView

最佳答案

不是手动计算点是否在 View 的边界内,而是使用 CGRectContainsPoint(rect, point)。这对我有用,我喜欢它,因为它更短且更易读:

func handlePan(pan: UIPanGestureRecognizer) {
switch pan.state {
case .Began:
if CGRectContainsPoint(self.pannableView.frame, pan.locationInView(self.pannableView)) {
// Gesture started inside the pannable view. Do your thing.
}
}

关于iphone - 如何限制平移手势区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com