TouchesBegan / Ended nur in einer bestimmten View!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TouchesBegan / Ended nur in einer bestimmten View!

    Guten Abend miteinander!

    Ich habe 3 verschiedene Views, welche alle die Grösse des iPhone-Bildschirms haben: View1, View2, View3

    Jede dieser View hat einen Button drin, mit welchem ich die die anderen Views aufrufen kann.

    z.B. view1 hat eine Buttonaction, mit welcher ich View3 anzeigen kann ([self.view addSubview:view3];)

    Nun möchte ich einen AlertView anzeigen wenn man irgendwo in meine zweite View (View2) klickt. Mit meinem Code kann man aber in jeder View
    klicken und es erscheint der alertView!

    Meine Frage ist nun, wie kann ich touchesBegan / Ended so eingrenzen, dass der alertView nur kommt wenn ich in View2 klicke? Muss ich locationInView:View2 nehmen, was bei mir nicht funktioniert hat?

    Oder kann ich irgendwie überprüfen welche View ich gerade im Vordergrund habe? Welche View gerade angezeigt wird?



    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {





    UITouch *touch =[touches anyObject];

    CGPoint startPoint =[touch locationInView:self.view]; //Hier locationInView:View2 oder so etwas?

    }







    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event

    {

    UITouch *touch = [touches anyObject];

    CGPoint lastTouch = [touch locationInView:self.view]; //Hier dann natürlich auch.



    CGFloat deltaX = fabsf(startPoint.x - lastTouch.x);

    CGFloat deltaY = fabsf(startPoint.y - lastTouch.y);





    if (deltaX <= 5 && deltaY <= 5) {





    UIAlertView *winnerAlert = [[UIAlertView alloc]

    initWithTitle:@"Test"

    message:@"Achtung Alert"

    cancelButtonTitle:@"Zurück"


    otherButtonTitles:@"Weiter", @"Hauptmenü",nil];

    [winnerAlert show];

    [winnerAlert release];

    }

    }


    Ich hoffe, ich kriege hier ein bisschen Hilfe. In anderen Foren wurde meine Frage nicht erhört.

    Vielen Dank im voraus für eure Hilfe.

    Freundliche Grüsse

    Franhu
  • Du solltest Touches, besonders wenn es sich um einfache Klicks handelt, nicht über die touches-Irgendwas-Methoden behandeln. Das ist aufwändig und extrem unelegant. Du solltest diese Methoden insbesondere nicht verwenden, wenn Du Dir noch nicht mal den Event Handling Guide angeschaut hast.

    Statt eines UIViews kannst Du ein UIControl verwenden. Damit kannst Du die Target-Action-Technik wie bei Buttons verwenden. Da kannst Du im Interface Builder direkt eine Connection vom Control auf die Action-Methode ziehen.
    „Meine Komplikation hatte eine Komplikation.“