2012-03-30 2 views
0

Ich würde gerne wissen, ob es eine Möglichkeit zum Ziehen und Ablegen von Bildern zwischen UIImageViews gibt, so dass wenn ich ein Bild von einem UIImageView ziehe, es in der nächsten UIImageView zentriert angezeigt wird.Wie kann ich ein Bild per Drag & Drop zwischen UIImageViews zentrieren?

Ich mache eine sehr kleine Schach-App, die ich gerade zum Spaß entwickle :) Ich habe ein einfaches Setup: Hintergrund des Boards und UIImageView für alle Zellen. Bis jetzt ist es mir gelungen, & Drop-Bilder mit Hilfe von UITouch und CGPoint um das Board zu ziehen. Mein Problem ist, dass ich & diese Bilder überall in meiner App fallen lassen kann; das bedeutet, dass sie übereinander liegen, zwischen den Zellen, auf halbem Weg außerhalb der Grenzen des Boards, usw. ... also ist dies definitiv eine Art Grenzproblem.

Mein Code Drag & Drop-Ereignisse für die Handhabung:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [[event allTouches] anyObject]; 

    CGPoint touchLocation = [touch locationInView:[self view]]; 

    for (UIImageView *piece in chessCells) { 
     if([touch view] == piece){ 
      piece.center = touchLocation; 
     } 
    } 

} 

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
    [self touchesBegan:touches withEvent:event]; 
} 

Über die for-Schleife: Alle Zellen in meinem Board sind leer IBOutlets mit UIImageViews, die ich, indem sie in einer NSArray organisieren namens 'chessCells' . Ich habe eine Methode, die die Bilder in ihren jeweiligen Zellen anzeigt, wenn die App startet. Von diesem Punkt an kann ich sie ergreifen und frei über das Schachbrett bewegen ... aber wie ich gefunden habe, ein bisschen zu frei.

Ich habe eine Menge Foren gelesen und viele Tutorials und die Online-Dokumentation durchgelesen, also lerne ich viel, während ich das tue, also vergib mir meinen Mangel an Fachwissen.

Jede Hilfe wäre sehr geschätzt :)

Antwort

1

Sie mit CGRectIntersectRect versuchen sollte dies mit diesem Code

if (CGRectIntersectsRect(yourImgFrame1, yourImgFrame2)) { 
    //do What ever you want 
} 

, um Ihren Code hinzufügen, wenn Ihr yourImgFrame1yourImgFrame2 schneidet können Sie durchführen irgendeine Aktion

Glück

Verwandte Themen