2012-02-28 78 views
0

在我看来,有一个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]]; 
} 
+0

我们能不能熬了'moveStamp代码:'? – yuji 2012-02-28 09:15:12

回答

0

是否有一个原因,你不添加手势识别器的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

0

也许你可以使用UIImageView的标签来解决你的问题。

- (void)moveStamp:(UIGestureRecognizer *)gesture 
{ 
    NSInteger tag = gesture.view.tag; 
    if (tag = currentViewTag) { 
     return; 
    } 
    //... 
}