Domanda

A mio avviso, c'è una serie di uiimageview.Ho provato ad aggiungere un gesto di panning, la mia uiimageview è in grado di muoversi.Ma il problema è dopo aver inserito la seconda uiimageview nell'array, sono in grado di spostare l'uiimageview quando tocca la precedente uiimageview.

Come posso limitare il tatto all'interno dell'autorità 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]];  
}
.

È stato utile?

Soluzione

C'è una ragione per cui non aggiungi il riconoscitore del gesto alla tempimageview prima di aggiungerlo al correnteMageArray?

Abbiamo davvero bisogno di vedere il codice in Movestamp.Sulla base di come stai facendo questo, dovrai interrogare il riconoscimento, chiedilo a chi è la sua vista, e quindi muovi quella vista.Lo stai facendo?Non ho il codice utile ma sembra qualcosa di simile:

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

Il Panrecognizer punterà solo con la vista in modo che dovrebbe funzionare.L'ho fatto con molti oggetti sullo schermo (vedi la mia app Qplus ad esempio), combinando Pan, Pinch e Tocca Gestures e tutti giocano bene insieme.

Buona fortuna,

damien

Altri suggerimenti

Forse puoi usare il tag di uiimageview per risolvere il problema.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top