/ / Spezifisches Objekt ziehen - iphone, sdk

Ziehe spezifisches Objekt - iphone, sdk

Ich habe ein Problem mit dem Ziehen von Objekten in iPhone SDK, meine UIImageView Steckdose ist rot und ich weiß nicht, warum das Ziehen nicht funktioniert! aber wenn ich die if Zeile entferne funktioniert mein Code gut, hier ist der Code:

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


UITouch *touch = [[event allTouches]anyObject];

if ([touch view] == red) {
CGPoint location = [touch locationInView:self.view];
red.center = location;

}
}


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

[self touchesBegan:touches withEvent:event];
}

Antworten:

1 für die Antwort № 1

Wenn Sie touchesBegan einer UIView-Unterklasse überschreiben, werden nur die Berührungen behandelt, die an diese UIView übergeben wurden.

Für seine Unteransichten müssen Sie UserInteractionEnabled auf TRUE setzen. Und dann erstellen Sie eine Unterklasse für Ihre Subviews, über die Sie die Touch-Behandlung an Ihr SuperView delegieren können.

Wenn das komplex klingt, einfach verwenden - (UIView *) hitTest: (CGPoint) Punkt mit Ereignis: (UIEvent *) Ereignis


0 für die Antwort № 2

Hallo, ich habe es mit dem untenstehenden Code gemacht. Ich muss imageEnd auf bestimmte horizontale und vertikale Weise ziehen, so dass ich sie wie unten gebunden habe.

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

UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView: touch.view];
location.x=510.0;
[imgEndPoint setUserInteractionEnabled:TRUE];

if ([touch view] == imgEndPoint) {
if (location.y < 710.0 && location.y > 75.0) {//image move between this coordinate
imgEndPoint.center = location;
}
}
}

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

UITouch *touch = [[event allTouches] anyObject];

if ([touch view] == imgEndPoint) {

CGPoint location = [touch locationInView: self.view];
location.x=510.0;
if (location.y < 710.0 && location.y > 75.0) {
imgEndPoint.center = location;
[self getPixcel];
}
[imgEndPoint setUserInteractionEnabled:TRUE];
}
}