Postando imagens do rolo da câmera no Facebook no xcode 4.5
Pergunta
Eu tenho algumas funcionalidades configuradas.Mas estou perdido sobre para onde ir a partir daqui.Provavelmente poderei descobrir o que fazer com o Facebook quando souber como realmente usar as imagens.Tentei salvar a imagem no NSDictionary e depois redirecioná-la para um View Controller diferente, mas isso não me permite redirecionar de dentro do método imagePickerController.Alguém tem alguma ideia de como usar a imagem selecionada no rolo da câmera?
Minha próxima ideia foi salvá-lo no NSDictionary e então apenas ter uma instrução verificando se o valor do NSdictionary mudou, mas essa não é uma maneira eficiente de fazer isso.
EDITADO abaixo para incluir a resposta fornecida, mas nada acontece, nenhuma imagem é exibida nem nada.o que estou perdendo?
- (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
}
}
Solução
Supondo que você tenha chamado isso de um controlador de visualização com um botão que você criou, por que não apenas adicionar um UIImageView ao seu controlador de visualização?Chame-o de myPhotoImageView ou algo parecido e, no método didFinishPickingMediaWithInfo, basta adicionar a seguinte linha de código após
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
como
myPhotoImageView.image = image;
Para dimensionar a visualização da imagem para que o aspecto fique bonito, faça isso.
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;