如何在呈现 UIImagePickerController 时创建 GalleryShortcut
How to create GalleryShortcut when presenting UIImagePickerController
我想为用户提供在我的应用中拍照或上传一张照片作为他的头像的选项。
我相信没有必要为此放置两个不同的按钮,所以我想制作下一个场景:
用户点击 "Add Picture" 按钮并自动显示带有源代码控制的 UIImagePicker - 相机。
但是,我想在角落里有画廊的快捷方式,用户可以点击,进入画廊并搜索他会使用的图片。
这是我需要的截图:
红圈部分为重要部分。
我怎么把它放在那里?
(最初没有)
没有预先构建的方法可以做到这一点。
您可以做的是为相机视图制作覆盖图。
请记住,您必须为每个设备制作不同的视图,因为每个设备在 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];
}
我想为用户提供在我的应用中拍照或上传一张照片作为他的头像的选项。 我相信没有必要为此放置两个不同的按钮,所以我想制作下一个场景:
用户点击 "Add Picture" 按钮并自动显示带有源代码控制的 UIImagePicker - 相机。 但是,我想在角落里有画廊的快捷方式,用户可以点击,进入画廊并搜索他会使用的图片。
这是我需要的截图:
红圈部分为重要部分。 我怎么把它放在那里?
(最初没有)
没有预先构建的方法可以做到这一点。 您可以做的是为相机视图制作覆盖图。 请记住,您必须为每个设备制作不同的视图,因为每个设备在 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];
}