Pubblicazione di immagini dalla fotocamera rotolo su Facebook in Xcode 4.5
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
}
}
. 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;
.