2012-02-28 14 views
0

私の見解では、UIImageViewの配列があります。私はパンニングジェスチャーを追加しようとしましたが、私のUIImageViewは動くことができます。しかし、問題は、配列に2番目の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

答えて

0

あなたはcurrentImageArrayに追加する前にtempImageViewにジェスチャー認識を追加しない理由はありますか?

私たちは本当にmoveStampのコードを見る必要があります。どのようにこれをやっているかに基づいて、レコグナイザに質問し、その人のビューに尋ね、そのビューを移動する必要があります。あなたはそれをやっていますか?私は便利なコードを持っていないが、それはのようなものになります。

- (void)moveStamp:(UIPanGestureRecognizer*)panRecognizer { 
    UIView *viewToMove = panRecognizer.view; 
    // move the view around 
} 

それが動作するはずですのでpanRecognizerはそれだけのビューを指しますが。私はパン、ピンチ、タップジェスチャーを組み合わせて、画面上の多くのオブジェクト(例えば、私のアプリQPlusを見てください)でこれを行いました。

幸運、

ダミアン

+0

ok。私はあなたが意味するものを得る。ありがとう。 – RockBaby

0

おそらく、UIImageViewのタグを使用して問題を解決できます。

- (void)moveStamp:(UIGestureRecognizer *)gesture 
{ 
    NSInteger tag = gesture.view.tag; 
    if (tag = currentViewTag) { 
     return; 
    } 
    //... 
} 
関連する問題