Domanda

Ho creato alcune funzionalità.Ma sono perso su dove andare da qui.Probabilmente posso capire cosa fare con Facebook una volta che so come usare effettivamente le immagini.Ho provato a salvare l'immagine in nsdictionary e quindi reindirizzando a un controller di vista diverso, ma non mi permetterà di reindirizzare all'interno del metodo ImagepickerController.Quindi qualcuno ha idea di come utilizzare l'immagine selezionata dal rotolo della fotocamera?

La mia prossima idea era di salvarlo nel nsdictionary e quindi avere una dichiarazione controllando per vedere se il valore nsdictionary è cambiato, ma non è un modo efficace per farlo affatto.

Modificato qui sotto per includere la risposta fornita, ma non succede nulla, nessuna immagine visualizza o nulla.Cosa mi manca?

- (void) useCameraRoll
{
if ([UIImagePickerController isSourceTypeAvailable:
     UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
    UIImagePickerController *imagePicker =
    [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType =
    UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:
                              (NSString *) kUTTypeImage,
                              nil];
    imagePicker.allowsEditing = NO;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
    newMedia = NO;
}
}

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info
                       objectForKey:UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:YES];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
    UIImage *image = [info
                      objectForKey:UIImagePickerControllerOriginalImage];


    NSLog(@"image:%@",image);


    displayPhoto.image = image;
    [displayPhoto setFrame:CGRectMake(0, 0, 320, 480)];
    [[self view] addSubview:displayPhoto];

}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
{
    // Code here to support video if enabled
}
}
.

È stato utile?

Soluzione

Supponendo che tu abbia chiamato questo da un controller di visualizzazione con un pulsante che hai creato, perché non aggiungere solo una UiimageView sul controller di visualizzazione?Chiamalo myphotoimageview o qualcosa del genere e poi nel metodo Didfinishpickingmediawithinfo, basta aggiungere la seguente riga di codice dopo

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
.

AS

myPhotoImageView.image = image;
.

Per dimensionare la visualizzazione dell'immagine in modo che l'aspetto sia carino, farlo.

CGSize size = image.size;
CGRect photoFrame;
if (size.width > size.height)
{
    // Landscape
    CGFloat scaleFactor = 320 / size.width;
    photoFrame = CGRectMake(0, 0, 320, size.height*scaleFactor);
}
else
{
    // Portrait
    CGFloat scaleFactor = 320 / size.height;
    photoFrame = CGRectMake(0, 0, size.width*scaleFactor, 320);
}
myPhotoImageView.frame = photoFrame;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top