Qualcuno sa come abilitare il pulsante album fotografico su UIImagePickerController quando è nella modalità fotocamera? Ti piace come l'app della fotocamera sull'iPhone può alternare tra l'acquisizione di immagini e video e ha anche il pulsante per visualizzare la libreria di foto?Abilitazione del pulsante Libreria foto su UIImagePickerController
risposta
Ho paura che questo non può essere fatto in questo modo semplice (basta abilitare o disabilitare alcune funzioni magiche). Per alcuni semplici requisiti, è possibile utilizzare cameraOverlayView e showsCameraControls per rendere l'implementazione.
Se si desidera passare dalla modalità foto/video, penso che si può controllare questo demo: http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html
Questo può essere fatto tramite le seguenti linee:
- (void) navigationController: (UINavigationController *) navigationController willShowViewController: (UIViewController *) viewController animated: (BOOL) animated {
if (imagePickerController.sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
UIBarButtonItem* button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(showCamera:)];
viewController.navigationItem.rightBarButtonItems = [NSArray arrayWithObject:button];
} else {
UIBarButtonItem* button = [[UIBarButtonItem alloc] initWithTitle:@"Library" style:UIBarButtonItemStylePlain target:self action:@selector(showLibrary:)];
viewController.navigationItem.leftBarButtonItems = [NSArray arrayWithObject:button];
viewController.navigationItem.title = @"Take Photo";
viewController.navigationController.navigationBarHidden = NO; // important
}
}
- (void) showCamera: (id) sender {
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
}
- (void) showLibrary: (id) sender {
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
Questo non cambierà il controllo della telecamera, ma aggiungerà una barra di navigazione nella parte superiore della finestra della telecamera. Potrebbe o potrebbe non essere quello che vuoi, ma non penso che fosse quello che l'OP aveva in mente. – DaGaMs
ottima soluzione. Ricordati solo di controllare se la sorgente della videocamera è davvero disponibile. Qualcosa come: if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) { self.picker.sourceType = UIImagePickerControllerSourceTypeCamera; } – EsbenB
Ecco un esempio app e libreria molto semplice che ti permette di ottenere la foto di Take o scegliere dalla libreria come fa Facebook. https://github.com/fulldecent/FDTake
Ho eseguito questa app di esempio di Apple PhotoPicker. Ho rimosso tutti i controlli della fotocamera e aggiunto il mio pulsante. Quando si fa clic, UIImagePickerControllerSourceType è impostato su UIImagePickerControllerSourceTypePhotoLibrary.
La parte più difficile per me è stata "chiudere" (potrebbe essere tecnicamente la parola sbagliata) la libreria di foto dopo che l'immagine è stata selezionata. L'ho fatto impostando il tipo di fonte su UIImagePickerControllerSourceTypeCamera. Questo riporta la vista della sovrapposizione della fotocamera.
ViewController.h
#import <UIKit/UIKit.h>
#import <CoreGraphics/CoreGraphics.h>
#import <ImageIO/ImageIO.h>
@interface ViewController : UIViewController <UIImagePickerControllerDelegate> {
//
}
@property (nonatomic, strong) UIImagePickerController *imagePicker;
- (IBAction)uploadNewPhotoTapped:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
//Other code
- (IBAction)uploadNewPhotoTapped:(id)sender {
UIImagePickerController *imagePickController=[[UIImagePickerController alloc]init];
//You can use isSourceTypeAvailable to check
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
imagePickController.sourceType=UIImagePickerControllerSourceTypeCamera;
imagePickController.showsCameraControls=YES;
// self.usingPopover = NO;
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {//Check PhotoLibrary available or not
imagePickController.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
imagePickController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) //Check front Camera available or not
imagePickController.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//else //!!!!!!!!!!!exception
imagePickController.delegate=self;
imagePickController.allowsEditing=NO;
[self presentModalViewController:imagePickController animated:YES];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *originalImage=[info objectForKey:UIImagePickerControllerOriginalImage];
//Do whatever with your image
NSData *data = UIImageJPEGRepresentation (
originalImage,
1.0
);
[self dismissModalViewControllerAnimated:YES];
}
// Other code
@end
Siamo spiacenti di svegliare uno zombi qui, ma se hai ancora il tuo codice, sarei davvero interessato! – bdv
Ciao bdv. In realtà ho trovato il mio codice e l'ho postato nella mia risposta originale. Non ricordo esattamente come ho fatto perché non ho lavorato su questa app in 2 anni, ma ho iniziato con l'app PhotoPicker originale di Apple. https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html – ganime
versione Swift2 di codice @epsilontik:
//mediaPicker is your UIImagePickerController
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
if(mediaPicker.sourceType == UIImagePickerControllerSourceType.PhotoLibrary){
let button = UIBarButtonItem(title: "Take picture", style: UIBarButtonItemStyle.Plain, target: self, action: "showCamera")
viewController.navigationItem.rightBarButtonItem = button
}else{
let button = UIBarButtonItem(title: "Choose picture", style: UIBarButtonItemStyle.Plain, target: self, action: "choosePicture")
viewController.navigationItem.rightBarButtonItem = button
viewController.navigationController?.navigationBarHidden = false
viewController.navigationController?.navigationBar.translucent = true
}
}
func showCamera(){
mediaPicker.sourceType = UIImagePickerControllerSourceType.Camera
}
func choosePicture(){
mediaPicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
}
- 1. Come aggiungere il pulsante della libreria foto su un UIImagePickerController?
- 2. pulsante indietro su misura sul UIImagePickerController
- 3. UIImagePickerController foto sempre 640x640 image
- 4. UIImagePickerController: come prendere> 1 foto?
- 5. rapido: come caricare le foto dalla libreria di foto senza utilizzare UIImagePickerController?
- 6. Personalizza il pulsante Indietro per UIImagePickerController?
- 7. Eliminare una foto dalla libreria di foto dell'utente?
- 8. di UIImagePickerController è compensato dopo assunzione foto
- 9. UIImagePickerController modo semplice per mostrare il pulsante della libreria nella fotocamera
- 10. Perché non riesco ad accedere alla libreria di foto usando UIImagePickerController
- 11. Come impostare la posizione per la foto acquisita usando UIImagePickerController?
- 12. Cattura di foto con risoluzione specifica utilizzando UIImagePickerController
- 13. Abilitazione Disabilitazione pulsante asp .net - utilizzando JavaScript
- 14. UIImagePickerController Scattare una foto dalla fotocamera - Impostazione predefinita per quadrare
- 15. Come ottenere l'ultima foto nella libreria iPhone?
- 16. abilitazione SSL su weblogic
- 17. Foursquare: foto su luoghi/foto ma non su luoghi/esplorare?
- 18. Visualizzazione di foto da NSDocumentDirectory
- 19. Utilizzando UIImagePickerController in UIView
- 20. UIImagePickerController multiple select
- 21. Abilitazione "Carica PuttyKey" su TortoiseGit
- 22. Visualizzazione selettore foto personalizzata
- 23. differenze telecamera tra UIImagePickerController e AVCaptureSession su iPhone
- 24. Abilitazione del supporto di Ruby PostGIS su Heroku
- 25. NSUndoManager e abilitazione/disabilitazione di un pulsante di annullamento
- 26. iOS7 UIImagePickerController allowsEditing non funziona correttamente
- 27. Mostra video solo in UIImagePickerController
- 28. Abilitazione metodo PUT html su IIS 7.5
- 29. UIImagePickerController Ritaglio?
- 30. Hibernate: abilitazione del recupero pigro nell'API criteri
ah ok. Grazie!! – MBU