Кто-нибудь знает, как включить кнопку фотоальбома на UIImagePickerController, когда она находится в режиме камеры? Как то, как приложение камеры на iphone может переключаться между захватом изображения и видео, а также имеет кнопку для просмотра библиотеки фотографий?Включение кнопки библиотеки фотографий в UIImagePickerController
ответ
Я боюсь, что это невозможно сделать таким простым способом (просто включите или отключите какую-нибудь магическую функцию). Для некоторых простых требований вы можете использовать cameraOverlayView и showsCameraControls для реализации.
Если вы хотите, чтобы переключаться между режимами фото/видео, я думаю, вы можете проверить это демо: http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html
Это можно сделать с помощью следующих строк:
- (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;
}
Это не изменит управление камерой, а добавит навигационную панель в верхнюю часть окна камеры. Это может быть или не быть тем, чего вы хотите, но я не думаю, что это то, что имел в виду OP. – DaGaMs
отличное решение. Не забудьте проверить, действительно ли источник камеры доступен. Что-то вроде: if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) { self.picker.sourceType = UIImagePickerControllerSourceTypeCamera; } – EsbenB
Вот пример приложения и очень простая библиотека, которая позволяет вам взять фото или выбрать из библиотеки так же, как Facebook. https://github.com/fulldecent/FDTake
Я проделал эту настройку приложения Apple PhotoPicker. Я удалил все элементы управления камерой и добавил свою собственную кнопку. При нажатии кнопки UIImagePickerControllerSourceType устанавливается UIImagePickerControllerSourceTypePhotoLibrary.
Сложная часть для меня была «увольнением» (может быть, технически неправильным словом), Photo Library после того, как изображение было выбрано. Я сделал это, установив тип источника обратно в UIImagePickerControllerSourceTypeCamera. Это возвращает изображение наложения камеры.
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
Извините, что проснулся здесь зомби, но если у вас все еще есть код, мне было бы очень интересно! – bdv
Hi bdv. Я действительно выкопал свой код и отправил его в свой первоначальный ответ. Я не помню точно, как я это сделал, так как я не работал над этим приложением через 2 года, но начал с оригинального приложения Apple PhotoPicker от Apple. https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html – ganime
Swift2 версия @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. Добавление кнопки «Выбор из библиотеки фотографий» на панель инструментов UIImagePickerController
- 2. Как добавить кнопку библиотеки фотографий на UIImagePickerController?
- 3. несколько фотографий с UIImagePickerController
- 4. UIImagePickerController - сбор видео в фоновом режиме из библиотеки фотографий
- 5. Просмотр фотографий из библиотеки фотографий и салфетки
- 6. Получить фотографию из библиотеки фотографий
- 7. Как удалить изображение из библиотеки фотографий с помощью UIImagePickerController
- 8. swift: Как загрузить фотографии из библиотеки фотографий без использования UIImagePickerController?
- 9. Несколько фотографий с использованием UIImagePickerController
- 10. Фильтр Фото из библиотеки фотографий
- 11. Выбор изображения из библиотеки фотографий
- 12. Как показать опцию выбора библиотеки в UIImagePickerController
- 13. Как выбрать несколько изображений из библиотеки фотографий?
- 14. пустой (ноль) UIImage взял из библиотеки фотографий
- 15. Быстрое получение NSData видео из библиотеки фотографий
- 16. iphone изображения (выбирается из библиотеки фотографий)
- 17. Как установить allowEditing для UIImagePickerController только для видео, выбранных из библиотеки фотографий в iOS?
- 18. UIImagePickerController Crash после 5-7 фотографий - снова
- 19. Можно ли щелкнуть несколько фотографий с UIImagePickerController?
- 20. Удалить фотографию из библиотеки фотографий пользователя?
- 21. Запуск библиотеки фотографий без использования uiimagepicker
- 22. Включение кнопки
- 23. Использования UIImagePickerController для получения выбранного изображения в библиотеке фотографий
- 24. Как загрузить анимированный GIF из библиотеки фотографий
- 25. Удаление кнопки отмены в UIImagePickerController?
- 26. UIImage из библиотеки фотографий очень большой
- 27. Как UIImagePickerController для камеры и библиотеки фотографий в одно и то же время в быстром
- 28. UIImagePickerController сбой при нажатии кнопки видео
- 29. Включение COM-библиотеки в C#
- 30. Включение статической библиотеки в Makefile
ах ок. благодаря!! – MBU