2012-03-30 20 views
0

Ich bin sehr neu in Objective-C und habe einige Anfänger Probleme. Ich habe eine Anwendung, die einen Bereich hat, der sich wie eine Fotogalerie verhalten soll. Sie klicken auf die Schaltfläche "Bild hinzufügen", und das Bild, das Sie aus der Kamerarolle ausgewählt haben, wird in eine UIImageView eingefügt. Dies ist der Code Ich verwende:iOS: UIImageView Probleme

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo { 
    imageView.image = img; 
    [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
} 

Nun, ich in mehreren UIImageViews hinzugefügt, so dass sie klicken können „Add Image“, und jedes Mal, wenn sie ein Bild von der Kamerarolle wählen, wird das Bild angezeigt werden in der nächsten verfügbaren UIImageView. Hier habe ich Probleme. Ich bin mir nicht sicher, wie dies zu tun, aber das ist der Code, den ich dieses zu verwenden habe versucht zu erreichen:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo { 
    if (imageView == nil) { 
     imageView.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

    if (imageView2 == nil) { 
     imageView2.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

    if (imageView3 == nil) { 
     imageView3.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 
} 

Ich habe zwei Fragen hier. Das erste Problem ist, dass diese Version meines Codes das Bild überhaupt nicht wie die erste Version des von mir geposteten Codes hinzufügt. Ich vermute, dass das, weil die ImageViews aus irgendeinem Grund nicht gleich Null sind. Ich bin mir nicht sicher, wie ich das beheben soll. Das zweite Problem ist, dass, wenn dieser Code funktionieren sollte, alle UIImageViews das Bild anzeigen, und nicht nur das nächste verfügbare UIImageView. Ich habe versucht, "Pause" zu setzen; nach jeder if-Anweisung, aber natürlich hat das einen Fehler verursacht, weil das keine Schleife ist. Jede Hilfe oder Beratung wird sehr geschätzt, danke!

Antwort

2

Sie überprüfen, ob die imageViewnil ist, nicht das Bild, das es enthält. Außerdem möchten Sie von der Funktion zurückkehren, keine Schleife unterbrechen. Versuchen Sie Folgendes:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo { 
    if (imageView.image == nil) { 
     imageView.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
     return; 
    } 

    if (imageView2.image == nil) { 
     imageView2.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
     return; 
    } 

    if (imageView3.image == nil) { 
     imageView3.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
     return; 
    } 
} 
+0

Vielen Dank, das hat den Trick für beide Probleme! – John

1

Der Code, den Sie ausgeführt haben, würde jedes Image imageView auf das ausgewählte Bild festlegen. Versuche dies.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo { 

    if (imageView.image == nil) { 
     imageView.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

    else if (imageView2.image == nil) { 
     imageView2.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 

    else if (imageView3.image == nil) { 
     imageView3.image = img; 
     [[picker parentViewController] dismissModalViewControllerAnimated:YES]; 
    } 
} 
+0

Vielen Dank! – John

Verwandte Themen