Hi Leute,
ich steh grad auf der Leitung.
ich habe folgendes Problem.
In können verschiedene Bilder platziert und verschoben werden werden. Verschoben wird immer das letzte Aktive Image [aktivImage ( UIImageView)].
Um ein anderes Image auch zu einem späteren Zeitpunkt zu verschieben muss dieses auch wieder aktiviert werden.
Die einzelnen Images werden in einem Array gespeichert.
Ich habe das so gelöst das ich mit "touschesBegin" und "touchesEnded" der Punkt festgelegt wird wo der Bildschirm berührt wird und in der Methode
"touchesEnded" wird dann dieser Punkt verglichen ob an der Stelle ein Image liegt.
Alles anzeigen
Wenn erkannt wird das an der Stelle an der "getouched" wird ein Objekt liegt werden um dieses Objekt ein paar Button aktiviert.
Mit einem Button kann das dieses Image als aktives Image aktiviert werden um dann das weiter zu verschieben, drehen usw,
Da ja noch nicht sicher ist ob der Benutzer mit dem Image arbeiten will oder doch mit dem noch aktiven weiter arbeiten will wird das "getouched" Image als "nextImageView" zwischengespeichert.
Und erst wenn der "Aktivieren" Button geklickt wird wird das nextImage an aktivImage übergeben.
Bisher hat alles ohne Probleme funktioniert.
Nun habe ich PinchGesture und PanGesture mit implementiert und da fangen meine Probleme an.
Im gezoomten und verschobenen Zustand des View's stimmt der Punkt an dem "getouched" wird ja nicht mehr mit dem Punkt überein an dem das Image liegt.
Das Problem ist ja das nun ein Image/Objekt das im View z.B.: an der Position Center = 100.100 liegt bei pinch und lan dann möglicherweise an der Bildschirmposition 200.200 liegen kann.
wenn ich an diese Stelle touche passiert.......nix. Eigentlich ja auch logisch weil ja als touch Punkt 200.200 ermittelt wird. Das Image aber ja immer noch an der Position 100.100 liegt im View.
Ich bin nun am Überlegen moved/ended durch eine TapGesture zu ersetzen aber wie kann ich dann ermitteln welches Image aus dem Array getouched wird.
Ich will ja berücksichtigen das dieses Objekt als nächstes Aktiviert werden kann........
Ich hoffe mal ich konnte mich verständlich ausdrücken......
ich steh grad auf der Leitung.
ich habe folgendes Problem.
In können verschiedene Bilder platziert und verschoben werden werden. Verschoben wird immer das letzte Aktive Image [aktivImage ( UIImageView)].
Um ein anderes Image auch zu einem späteren Zeitpunkt zu verschieben muss dieses auch wieder aktiviert werden.
Die einzelnen Images werden in einem Array gespeichert.
Ich habe das so gelöst das ich mit "touschesBegin" und "touchesEnded" der Punkt festgelegt wird wo der Bildschirm berührt wird und in der Methode
"touchesEnded" wird dann dieser Punkt verglichen ob an der Stelle ein Image liegt.
Quellcode
- -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
- [self buttonVerschwinden];
- [self zuklappen];
- UITouch *touch = [[event allTouches] anyObject];
- locationBegin = [touch locationInView:self.view];
- }
- -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
- [self zuklappen];
- UITouch *touch = [[event allTouches] anyObject];
- //CGPoint location = [touch locationInView:self.view];
- locationEnd = [touch locationInView:self.view];
- int x = locationBegin.x;
- int y = locationBegin.y;
- CGRect touchBegin = CGRectMake(x-5, y-5, 10, 10);
- if (CGRectContainsPoint(touchBegin, locationEnd)) {
- for (int i = 2; i < [itemTest count]; i++) {
- UIImageView *imageView = [itemTest objectAtIndex:i];
- if (CGRectContainsPoint(CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y, imageView.frame.size.width, imageView.frame.size.height),locationEnd)) {
- nextImageView = [itemTest objectAtIndex:i];
- aktivItemID = i;
- [self aktivateIcon];
- return;
- } else {
- [self buttonVerschwinden];
- }
- }
- } else {
- [self buttonVerschwinden];
- }
- }
Wenn erkannt wird das an der Stelle an der "getouched" wird ein Objekt liegt werden um dieses Objekt ein paar Button aktiviert.
Mit einem Button kann das dieses Image als aktives Image aktiviert werden um dann das weiter zu verschieben, drehen usw,
Da ja noch nicht sicher ist ob der Benutzer mit dem Image arbeiten will oder doch mit dem noch aktiven weiter arbeiten will wird das "getouched" Image als "nextImageView" zwischengespeichert.
Und erst wenn der "Aktivieren" Button geklickt wird wird das nextImage an aktivImage übergeben.
Bisher hat alles ohne Probleme funktioniert.
Nun habe ich PinchGesture und PanGesture mit implementiert und da fangen meine Probleme an.
Im gezoomten und verschobenen Zustand des View's stimmt der Punkt an dem "getouched" wird ja nicht mehr mit dem Punkt überein an dem das Image liegt.
Das Problem ist ja das nun ein Image/Objekt das im View z.B.: an der Position Center = 100.100 liegt bei pinch und lan dann möglicherweise an der Bildschirmposition 200.200 liegen kann.
wenn ich an diese Stelle touche passiert.......nix. Eigentlich ja auch logisch weil ja als touch Punkt 200.200 ermittelt wird. Das Image aber ja immer noch an der Position 100.100 liegt im View.
Ich bin nun am Überlegen moved/ended durch eine TapGesture zu ersetzen aber wie kann ich dann ermitteln welches Image aus dem Array getouched wird.
Ich will ja berücksichtigen das dieses Objekt als nächstes Aktiviert werden kann........
Ich hoffe mal ich konnte mich verständlich ausdrücken......
Wenn Dich alles verlässt kommt das allein sein.
Wenn Du alles verlässt kommt die Einsamkeit.
Wenn Du alles verlässt kommt die Einsamkeit.