UIAlertController的使用+唤醒相机|相册的使用
来源:互联网 发布:全民夺宝助手软件 编辑:程序博客网 时间:2024/06/06 20:25
@interface ViewController ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>@property (nonatomic, strong) UIImageView *chooseView;@property (nonatomic, strong) UIButton *openCameraBtn;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor darkGrayColor]; //加载从相册中选择的图片 self.chooseView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)]; self.chooseView.backgroundColor = [UIColor cyanColor]; [self.view addSubview:self.chooseView]; //开启系统相机|相册 self.openCameraBtn = [UIButton buttonWithType:UIButtonTypeCustom]; self.openCameraBtn.frame = CGRectMake(100, 350, 200, 40); [self.openCameraBtn setTitle:@"开启系统相机|相册" forState:UIControlStateNormal]; [self.openCameraBtn setBackgroundColor:[UIColor orangeColor]]; [self.openCameraBtn addTarget:self action:@selector(openSystemCamera) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.openCameraBtn];}/* UIImagePickerController(图片拾取器) 能够根据不同的额指令,选择开启相机或者系统相册 ps:使用图片拾取器的时候,都别忘了实现两个协议 UIImagePickerControllerDelegate, UINavigationControllerDelegate pss:模拟器和某些设备不支持开启相机,所以在开启相机功能执行之前,有必要判断当前设备是否存在相机 */- (void)openSystemCamera{ UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:@"开启系统相机|相册" preferredStyle:UIAlertControllerStyleActionSheet];// UIAlertControllerStyleAlert(警告框)//Ps:UIAlertControllerStyleAlert(警告框)还可以添加TextField,UIAlertControllerStyleActionSheet不可以`;/*添加文本框 [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.textColor = [UIColor redColor]; //给文本框设置监听(这是这里面的特殊用法,一般情况下textField是不能设置监听的) [textField addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventEditingChanged]; }];*/ [alertVC addAction:[UIAlertAction actionWithTitle:@"相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){ //创建图片拾取器 UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; //设置代理 imagePicker.delegate = self; //设置图片拾取器类型(相机还是相册) imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; //是否允许图片编辑 imagePicker.allowsEditing = YES; //唤醒相机 [self presentViewController:imagePicker animated:YES completion:nil]; }]]; [alertVC addAction:[UIAlertAction actionWithTitle:@"系统相册" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; [self presentViewController:imagePicker animated:YES completion:nil]; }]]; [alertVC addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]]; [self presentViewController:alertVC animated:YES completion:nil]; }#pragma maker -#pragma mark - 回调方法- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{ //完成获取图片的操作// NSLog(@"%@",info); UIImage *chooseImage = [info objectForKey:@"UIImagePickerControllerEditedImage"]; self.chooseView.image = chooseImage; //将图片从系统相册当中取出,并存到应用的沙盒中 NSString *homPath = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents"]; //路径 NSString *realPath = [homPath stringByAppendingPathComponent:[NSString stringWithFormat:@"00%d.image",arc4random()%10000]]; //图片存入沙盒 [UIImageJPEGRepresentation(chooseImage, 1.0f) writeToFile:realPath atomically:YES]; [self dismissViewControllerAnimated:YES completion:nil]; }
0 0
- UIAlertController的使用+唤醒相机|相册的使用
- iOS相机, 相册, 图片库 和 UIAlertController的使用
- iOS10 相机相册等权限的使用
- 兼容7.0的相机相册使用
- 相机的使用 --- 拍照,相册导入
- UIAlertController的使用(Swift)
- UIAlertController的使用示例
- UIAlertController的使用二
- UIAlertController的使用
- UIAlertController的使用
- 关于UIAlertController的使用
- UIAlertController的使用
- UIAlertController 的使用
- UIAlertController 的使用
- UIAlertController的使用
- swift 的 UIAlertController使用
- UIAlertController的使用
- UIAlertController的使用
- proguard混淆常用保存笔记
- 使用Alcatraz为Xcode安装XActivatePowerMode插件, 从此敲代码逼格大大滴~
- ios 表单上传图片和参数的2种方法
- 亲密数
- abstract class和interface有什么区别?
- UIAlertController的使用+唤醒相机|相册的使用
- pycharm
- sublime text 安装插件
- Linux and the Device Tree
- Gradle version 1.10 is required. Current version is 2.X的解决办法
- Android源码分析-点击事件派发机制
- 新讯息
- vim 中Ctags的安装和使用
- weinx公众号--AccessToken和JsapiTicket的获取方法及长期保存 (整合)