UIImageView手势数组
-
13-11-2019 - |
题
在我的视图中,有一系列UIImageView。我试图添加平移手势,我的UIImageView能够移动。但问题是在我将第二个UIImageView插入阵列之后,我能够在触摸上一个UIImageView时移动UIImageView。
如何限制当前UIImageView中的触摸?
- (void)addNewImageToArray: (UIImage *)inImage
{
UIImageView *tempImageView = [[UIImageView alloc]initWithImage:inImage];
tempImageView.userInteractionEnabled = YES;
tempImageView.center = self.vwDesktop.center;
CALayer * l = [tempImageView layer];
[l setBorderWidth:2.0];
[l setBorderColor:[[UIColor grayColor] CGColor]];
tempImageView.frame = CGRectMake(0,0,inImage.size.width,inImage.size.height);
[currentImageArray addObject:tempImageView];
UIPanGestureRecognizer *stampPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveStamp:)];
[stampPanGesture setMinimumNumberOfTouches:1];
[stampPanGesture setMaximumNumberOfTouches:1];
[[currentImageArray objectAtIndex:currentImageArray.count - 1] addGestureRecognizer:stampPanGesture];
[self.vwDesktop addSubview:[currentImageArray objectAtIndex:currentImageArray.count - 1]];
}
. 解决方案
在添加到CurrentimageArray之前,您是否有一个原因您不会将手势识别器添加到TempImageView之前?
我们真的需要在MoveStamp中看到代码。基于您的方式,您需要询问识别器,请询问它的视图,然后移动该视图。你在这样做吗?我没有代码方便,但它看起来像:
- (void)moveStamp:(UIPanGestureRecognizer*)panRecognizer {
UIView *viewToMove = panRecognizer.view;
// move the view around
}
.
Panrecognizer只会指向它的视图,以便它应该工作。我已经用屏幕上的许多对象(例如,请参阅我的应用程序qplus),组合平移,捏和敲击手势,它们都在一起玩得很好。
祝你好运,
damien
其他提示
也许您可以使用UIImageView的标签来解决您的问题。
- (void)moveStamp:(UIGestureRecognizer *)gesture
{
NSInteger tag = gesture.view.tag;
if (tag = currentViewTag) {
return;
}
//...
}
. 不隶属于 StackOverflow