【问题标题】:How to create GalleryShortcut when presenting UIImagePickerController呈现 UIImagePickerController 时如何创建 GalleryShortcut
【发布时间】:2015-02-09 15:05:35
【问题描述】:
我想让用户选择在我的应用中拍照或上传一张作为他的头像。
我相信没有必要为此设置两个不同的按钮,所以我想制作下一个场景:
用户单击“添加图片”按钮并自动显示带有源代码控制的 UIImagePicker - 相机。
但是,我想在角落里有画廊的快捷方式,用户可以点击,进入画廊并搜索他会使用的图片。
这是我需要的截图:
红圈部分为重要部分。
我怎么把它放在那里?
(最初它不存在)
【问题讨论】:
标签:
ios
objective-c
uiimagepickercontroller
image-gallery
【解决方案1】:
没有预先构建的方法可以做到这一点。
您可以做的是为相机视图制作叠加层。
请记住,您必须为每台设备制作不同的视图,因为每台设备在 CameraView 中的位置已经不同。
一个例子是这样的:
- (IBAction)addImage:(UIButton *)sender {
UIView* overlay = [[UIView alloc] initWithFrame:CGRectMake(20,self.view.frame.size.height-60 , 40, 40)];
overlay.opaque=NO;
overlay.backgroundColor = [UIColor clearColor];
UIButton* btnGallery = [[UIButton alloc]initWithFrame:CGRectMake(0,0 , 40, 40)];
[btnGallery setImage:[UIImage imageNamed:@"image_gallery"] forState:UIControlStateNormal];
btnGallery.backgroundColor = [UIColor whiteColor];
[overlay addSubview:btnGallery];
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = @[(NSString *) kUTTypeImage];
imagePicker.allowsEditing = YES;
[imagePicker.view addSubview:overlay];
[btnGallery addTarget:self
action:@selector(openGallery)
forControlEvents:UIControlEventTouchUpInside];
_picker = imagePicker;
[self presentViewController:imagePicker
animated:YES
completion:nil];
}
-(void)openGallery
{
UIImagePickerController *gallery = [[UIImagePickerController alloc] init];
gallery.delegate = self;
gallery.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
gallery.mediaTypes = @[(NSString *) kUTTypeImage];
gallery.allowsEditing = YES;
_gallery = gallery;
[_picker presentViewController:gallery
animated:YES
completion:nil];
}