Bild laden und bearbeiten so wie im Addressbook

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bild laden und bearbeiten so wie im Addressbook

    Hallo,

    bin hier neu und hab schon gleich ne Frage:

    Ich möchte in meiner App ein Bild speichern und dann bearbeiten können wie im original Adressbuch.
    Das soll so aussehen:

    ein kleiner Button oder ImageView mit einem default-Bild. Wenn ich drauf klicke soll ein Actionsheet aufklappen (Choose Photo, Edit Photo, Delete Phote und Cancel).
    Ich habe mir den Apple-Sample-Code QuickContact angeschaut.
    Mir ist nun bewusst, dass der im Adressbuch verwendeter Controller der ABNewPersonViewController ist. Aber das hilft mir auch nicht weiter. Ich benötige ja nur den Code-Schnipsel für das hinzufügen und editieren eines Photos und nicht den ganzen Code für das Anlegen einer Person.
    Soviel ich recherchiert habe, gibt es keinen weiteren Example-Code von Apple.

    Kann mir jemand helfen. Vielleicht bin ich auch auf einen total falschen Weg, und es hat gar nichts mit dem Addressbuch zu tun, da der Code durch das Addressbook-Framework nicht nach außen sichtbar ist.

    LG Jasi
  • Danke für die schnelle Antwort. Nein, hab ich noch nicht so richtig.
    Ich war der Meinung der UIImagePickerController ist nur für den ImagePicker, sprich nur für das Laden des Photo Albums zuständig.
    Werde mich da mal rein arbeiten.
    Weißt du, ob es da im UIImagePickerController Möglichkeiten gibt, das Bild zu bearbeiten (so wie oben beschrieben) oder so den Auschnitt wählen, dass auf dem Button oder ImageView der angepasste Ausschnitt zu sehen ist?
    LG
  • Ich habe mich jetzt in den UIImageController eingearbeitet.
    Nun habe ich ein Problem, das hier schon öfters behandelt wurde. Leider komm ich trotz den Lösungsansätzen nicht weiter.

    Ich habe mir ein Button mit einem Default-Image gebastelt. Wenn ich diesen Button drücke, wird der ImagePicker aufgerufen.
    Meine Idee ist es, ein Foto auszuwählen und dach aufrufen von
    didFinishPickingMediaWithInfo soll das Bild auf den Button platziert werden.

    Mein Codeschnipsel:

    Quellcode

    1. - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    2. NSLog(@"didFinishPickingMediaWithInfo info: %@", info);
    3. pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    4. [self dismissModalViewControllerAnimated:YES];
    5. //[picker release];
    6. NSLog(@"didFinishPickingMediaWithInfo: %@", pickedImage);
    7. [self.photoButton0 setImage:pickedImage forState:UIControlStateNormal];
    8. }
    Alles anzeigen


    Im IOS Simulator 4.1 passiert folgendes:
    Ich kann ein Photo aus dem Photoalbum auswählen, der Picker schließt, und der Button verschwindet bzw. er ist noch da, aber nicht zusehen.
    In der Konsole bekomme ich folgende Meldung:

    2011-02-26 11:48:14.635 Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.
    2011-02-26 11:48:14.636 Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate
    2011-02-26 11:48:14.679 viewWillDisappear
    2011-02-26 11:48:17.162 didFinishPickingMediaWithInfo info: {
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.jpg?id=105&ext=jpg";
    }
    2011-02-26 11:48:17.163 viewWillAppear
    2011-02-26 11:48:17.169 didFinishPickingMediaWithInfo: (null)

    Haben die ersten beiden Meldungen etwas mit dem Problem zutun? Die Meldungen verstehe ich leider nicht.
    Leider ist in der info nicht UIImagePickerControllerOriginalImage sondern UIImagePickerControllerReferenceURL.
    Aber wieso??? Muss ich jetzt das auf UIImagePickerControllerOriginalImage setzen und wie geht das?

    Mir ist aufgefallen, dass im IOS Simulatur 3.2 (IPad) das ganze wunderbar klappt. Das ausgewählte Foto ist auf dem Button platziert (noch nicht angepasst).
    Folgende Meldung bekomme ich im Simulator 3.2

    2011-02-26 11:58:06.549 Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.
    2011-02-26 11:58:06.550 Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate
    2011-02-26 11:58:06.670 viewWillDisappear
    2011-02-26 11:58:12.395 didFinishPickingMediaWithInfo info: {
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerOriginalImage = ;
    }
    2011-02-26 11:58:12.396 viewWillAppear
    2011-02-26 11:58:12.398 didFinishPickingMediaWithInfo:

    Habe in diversen Foren gelesen, dass das evtl. ein Apple-Buck ist!?!
    Stimmt das?
    Vielleicht stimmt auch das FotoLibrary verzeichnis vom Iphone-Simulator nicht?
    Kann mir jemand helfen?

    LG Jasi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jasi ()

  • Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.
    Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate
    viewWillDisappear
    didFinishPickingMediaWithInfo info: {
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerReferenceURL = "assets-library://asset/asset.jpg?id=105&ext=jpg";
    }
    didFinishPickingMediaWithInfo: (null)
    viewWillAppear

    Das Image ist auch null, wenn ich dismissModalViewControllerAnimated = YES an das Ende setze.