UIImageView手势数组
问题描述:
在我看来,有一个UIImageView数组。我试图添加平移手势,我的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]];
}
答
是否有一个原因,你不添加手势识别器的tempImageView之前,将其添加到currentImageArray?
我们确实需要在moveStamp中看到代码。根据你如何做到这一点,你需要询问识别器,询问它的观点是谁,然后移动该视图。你在做那个吗?我没有代码,方便,但它看起来是这样的:
- (void)moveStamp:(UIPanGestureRecognizer*)panRecognizer {
UIView *viewToMove = panRecognizer.view;
// move the view around
}
的panRecognizer只点到它的视图,以便它应该工作。我在屏幕上使用了许多对象(例如,参见我的应用程序QPlus),将平底锅,捏手和水龙头手势结合在一起,他们在一起玩的很开心。
祝你好运,
达明
+0
好的。我明白你的意思。谢谢。 – RockBaby 2012-02-28 09:35:36
答
也许你可以使用UIImageView的标签来解决你的问题。
- (void)moveStamp:(UIGestureRecognizer *)gesture
{
NSInteger tag = gesture.view.tag;
if (tag = currentViewTag) {
return;
}
//...
}
我们能不能熬了'moveStamp代码:'? – yuji 2012-02-28 09:15:12