2012-03-28 5 views
0

Ich benutze die Gestenberührungsfunktion, um die Größe meines Bildes zu ändern. Nun, was ich tun möchte, ist, dass, wenn das Bild ein bestimmtes X, Y Punkt trifft, verschwindet es aus der Ansicht.Bildschirmkoordinaten mit CGAffineTransform

Wenn ich mit CGpoint arbeitete, hat es gut funktioniert.

Wie sammen ich die (x y) Koordinaten von CGTransform Matrix

Der Kodex i zur Zeit verwende ist

- (void)updateOriginalTransformForTouches:(NSSet *)touches 
{ 
    if ([touches count] > 0) { 
     CGAffineTransform incrementalTransform = [self incrementalTransformWithTouches:touches]; 
     [self setConstrainedTransform:CGAffineTransformConcat(originalTransform, incrementalTransform)]; 
     originalTransform = self.transform; 
    } 
} 

// At start, store the touch begin points and set an original transform 
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [[self superview] bringSubviewToFront:self]; 
    NSMutableSet *currentTouches = [[[event touchesForView:self] mutableCopy] autorelease]; 
    [currentTouches minusSet:touches]; 
    if ([currentTouches count] > 0) { 
     [self updateOriginalTransformForTouches:currentTouches]; 
     [self cacheBeginPointForTouches:currentTouches]; 
    } 
    [self cacheBeginPointForTouches:touches]; 
} 

// During movement, update the transform to match the touches 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    CGAffineTransform incrementalTransform = [self incrementalTransformWithTouches:[event touchesForView:self]]; 
    [self setConstrainedTransform:CGAffineTransformConcat(originalTransform, incrementalTransform)]; 

    NSLog(@"%f",incrementalTransform.tx); 
    NSLog(@"%f",incrementalTransform.ty); 

    if (incrementalTransform.tx == 44 && incrementalTransform.ty == 281) { 
     NSLog(@"dvvd"); 
    } 
} 

// Finish by removing touches, handling double-tap requests 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self updateOriginalTransformForTouches:[event touchesForView:self]]; 
    [self removeTouchesFromCache:touches]; 

    for (UITouch *touch in touches) { 
     if (touch.tapCount >= 2) { 
      [self.superview bringSubviewToFront:self]; 
     } 
    } 

    NSMutableSet *remainingTouches = [[[event touchesForView:self] mutableCopy] autorelease]; 
    [remainingTouches minusSet:touches]; 
    [self cacheBeginPointForTouches:remainingTouches]; 
}// Redirect cancel to ended 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self touchesEnded:touches withEvent:event]; 
} 

Antwort

0

Okay, ich möchte meine eigene Frage beantworten

i für verschiedene Verfahren gesucht, um meine Tack gestern Abend durchführen fand ich PanGestures die für meine Aufgabe mehr als nützlich sein wird

so here ist die Verbindung, die ich es verwenden

es funktionierte für mich

1

Sind Sie fragen, wie Sie feststellen können, wo die rect Ansicht im aktuellen Koordinatensystem? Wenn ja,

CGRect transformedFrame = CGRectApplyAffineTransform(self.frame, incrementalTransform); 
+0

ich es weiter u kurze ... ich habe einige Bilder auf meinem Bildschirm (Wi thOut UIImageView) diese Bilder können Größe ändern und drehen (mit dem Code, den ich zur Verfügung gestellt habe) jetzt, was ich versuche zu tun ist, dass ich jedes Bild in der Ansicht löschen möchte. Dazu muss der Benutzer es an einen bestimmten Ort ziehen, an dem sich ein anderes Bild (das in der Ansicht fixiert wird) eines Mülleimers befindet (sagen wir die Position von (100,100) wenn der Benutzer das Bild zieht) Dadurch wird das Bild aus der Ansicht gelöscht /// – WaaleedKhan

Verwandte Themen