UIImagePickerController

1:让 UIImagePickerController 显示后 的状态栏始终保持某一种风格.

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    [[UIApplication  sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
}
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    [[UIApplication  sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
}

2:修改 UIImagePickerController 顶部导航栏的颜色风格

[[imagePickerController navigationBar] setTintColor:[UIColor colorWithRed:78.0/255.0 green:148.0/255.0 blue:201.0/255.0 alpha:1]];

此方式同时适用于:短信,邮件等系统界面

3:是否显示照相机标准的控件库

imagePickerController.showsCameraControls = NO;

4:将图片保存至系统照片库

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

成功失败后的回调:

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    myImageView.image = image;
    NSLog(@"%@",error);
}

5:将视频保存至系统照片库

NSString* path = [[info objectForKey:UIImagePickerControllerMediaURL] path];
// 保存视频
UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), nil); 

成功失败后的回调:

- (void)video: (NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    NSLog(@"%@",videoPath);
    NSLog(@"%@",error);
}
//首先判断设备是否支持拍照功能
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        if (imagePickerController == nil) {

            imagePickerController=[[UIImagePickerController alloc] init];
            //只开启拍照
            imagePickerController.sourceType=UIImagePickerControllerSourceTypeCamera;

            //拍照 摄影 同时开启
            //imagePickerController.mediaTypes =  [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
            //只开启 摄影
            //imagePickerController.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];

            imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;//视频质量:最好的
            imagePickerController.cameraDevice =  UIImagePickerControllerCameraDeviceFront;  //默认启用前置摄像头
            imagePickerController.delegate = self;
            imagePickerController.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
            imagePickerController.showsCameraControls = YES;//是否显示照相机标准的控件库
            [imagePickerController setAllowsEditing:NO];//是否加入照相后预览时的编辑功能

            //为相机添加自定义拍摄时的视图
            //imagePickerController.cameraOverlayView = imagePreviewViewController.view;

            CGRect rect = [[UIScreen mainScreen] bounds];
            rect.origin.y = rect.origin.y +50;
            rect.size.height = rect.size.height -130;
            UIButton *btn =[UIButton buttonWithType:UIButtonTypeCustom];
            [btn setFrame:rect];
            //[btn setTitle:@"试试" forState:UIButtonTypeRoundedRect];
            [btn addTarget:self action:@selector(SaveCamera) forControlEvents:UIControlEventTouchUpInside];
            [imagePickerController.view addSubview:btn];

        }

		[self presentModalViewController:imagePickerController animated:YES];
	}
时间: 2024-09-20 00:38:42

UIImagePickerController的相关文章

iOS中UIImagePickerController图片选取器的用法小结_IOS

UIImagePickerController用于管理可自定义的,系统支持的用于获取设备上图片和视频的用户界面.同时可以用于在App中选择存储的图片和视频.一个UIImagePickerController管理用户交互并且将这些交互结果传递给一个代理对象.该类不能被继承和修改,除了自定义cameraOverlayView外. 先简单讲解下UIImagePickerController的一些属性,再上代码. 一.常用属性 (1)sourceType 控制器展示的选择界面的类型, 包含三个枚举值 复

非定制UIImagePickerController的使用

非定制UIImagePickerController的使用 效果: 源码: // // ViewController.m // ImagePic // // Created by XianMingYou on 15/3/26. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import "ViewController.h" typedef enum : NSUInteger { TAKE_IMAGE, TAKE

button-重命名uiimagepickercontroller按扭

问题描述 重命名uiimagepickercontroller按扭 如何重命名uiimagepickercontroller下方的左右两个按扭,系统自带的是cancel和choose,我想把它们改成其它的,比如"返回","取消"... 谢谢!

UIImagePickerController在iPhone和iPad中用法的一点不同[转]

我们知道,在iPhone中获取照片库常用的方法如下:   UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init];     if ([UIImagePickerController isSourceTypeAvailable:          UIImagePickerControllerSourceTypePhotoLibrary]) {         m_imagePicker.sou

ios-关于UIImagePickerController问题

问题描述 关于UIImagePickerController问题 在照相机中使用 allowsEditing = NO ,运行正常. if( [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ if(imagePicker == nil) imagePicker = [[UIImagePickerController alloc] init]; imagePicker.

Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePickerController可以轻易地实现从设备图片库和照相机获取图片. 目录 Swift学习笔记4使用UIImagePickerController实现从设备图片库和照相机获取图片 目录 声明协议 创建UIImagePickerController UIImagePickerControllerDe

怎么获得UIImagePickerController选取图片的名称,再将其放入sqlite中

问题描述 怎么获得UIImagePickerController选取图片的名称,再将其放入sqlite中 怎么获得UIImagePickerController选取图片的名称,再将其放入sqlite中. 解决方案 http://m.blog.csdn.net/blog/dragonxwren362922604/8127270 解决方案二: 获得通过UIImagePickerController选取的图片的名称信息 解决方案三: http://blog.sina.com.cn/s/blog_7b9

ios-使用UIImagePickerController出现内存泄漏的问题

问题描述 使用UIImagePickerController出现内存泄漏的问题 今天公司的app一点开就闪退,于是就查了内存泄漏的问题,用Instruments 发现选择照片后没多久就出现UIStatusBarHideAnimationParameters这个问题,本来还以为是状态栏的事,后来网上查了点资料,说是UIImagePickerController的问题,想请问一下怎么解决? 试过了在didFinishPickingMediaWithInfo 方法里把imagepicker的代理设为n

UIImagePickerController按钮的中文问题

UIImagePickerController按钮的中文问题 执行以下两步即可 1. 在targets中设置region为China 2. 在project中添加支持中文