启用UIImagePickerController上的照片库按钮

MBU*_*MBU 18 uiimagepickercontroller ios iphone-4

有没有人知道如何在相机模式下启用UIImagePickerController上的相册按钮?就像iphone上的相机应用程序如何在图像和视频拍摄之间切换一样,还有按钮来查看照片库?

小智 14

这可以通过以下几行完成:

- (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;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不会改变相机控制,而是将导航栏添加到相机窗口的顶部.这可能是也可能不是你想要的,但我不认为这是OP的想法. (2认同)
  • 好的解决方案 只需记住检查相机源是否真的可用.类似于:if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){self.picker.sourceType = UIImagePickerControllerSourceTypeCamera; } (2认同)

Kev*_*Xue 7

我担心这不能以那么简单的方式完成(只需启用或禁用某些魔术功能).对于一些简单的要求,您可以使用cameraOverlayViewshowsCameraControls来实现.

如果您想在照片/视频模式之间切换,我想您可以查看此演示:http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html