2012-02-28 81 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; 
    } 
    //... 
}