gpt4 book ai didi

iphone - 进入 UIImagePickerController 编辑模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:54 26 4
gpt4 key购买 nike

我使用 UIImagePickerController (photoPicker) 用相机拍照,然后编辑这些照片 (allowEditing = YES)。用户可以使用 photoPicker.view 中的按钮在相机和库之间切换,但我想在 photoPicker 处于编辑模式时删除此按钮。

photoLibrarySourceType 中,选择器使用推送来显示编辑模式,因此它适用于此方法:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (navigationController == photoPicker) {
NSLog(@"navigation ");
if ([navigationController.viewControllers indexOfObject:viewController] == 1)
{
// If second UIViewController, set your overlay.
NSLog(@"editing");
}
}
}

但是在cameraSourceType中,相机和编辑模式之间没有导航。

最佳答案

我想出了一个小技巧,它对我有用。我还是有点新,所以请随意优化,因为我找不到其他方法。

基本思想是在默认相机按钮上创建一个不可见按钮,该按钮执行调用 [uiimagepickercontroller takePicture] 的方法

这是我的示例代码

@implementation myViewController
{
UIImagePickerController *myImagePickerController;
UIButton * fakeCameraButton;


}

- (IBAction)showImagePicker:(id)sender{

// accessible camera validations implied
myImagePickerController = [[UIImagePickerController alloc]init];
myImagePickerController.sourceType=UIImagePickerControllerSourceTypeCamera;
myImagePickerController.showsCameraControls = YES;
myImagePickerController.delegate=self;
myImagePickerController.allowsEditing=YES;

CGFloat myViewHeight = 100; // you play around with the positions to get your desired frame size. This worked for me
UIView * myView = [[UIView alloc] initWithFrame:CGRectMake(0, myImagePickerController.view.frame.size.height - myViewheight, picker.view.frame.size.width, myViewheight)];

fakeCameraButton = [[UIButton alloc] initWithFrame:CGRectMake(myView.frame.size.width / 2 - 30, myView.frame.size.height/2-15, 60, 60)];// position it over the default camera button
[fakeCameraButton addTarget:self action:@selector(cameraButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[fakeCameraButton setTitle:@"" forState:UIControlStateNormal];

[myView addSubview:fakeCameraButton];
myImagePickerController.cameraOverlayView = myView;
[self presentViewController:myImagePickerController animated:YES completion:nil];


}

-(void)cameraButtonPressed{

// Make sure you check if camera is ready before this method.
[myImagePickerController takePicture];

// you are in editing/preview mode here if allowsEditing = YES

// you can remove all your custom overlay views by
myImagePickerController.cameraOverlay = nil



}

就像我之前说的,请确保检查相机是否准备就绪。您可以在 stackoverflow 上找到有关如何操作的答案。

此代码可能很糟糕,因此欢迎编辑或替代解决方案。

我需要开发伙伴帮助我了解有关 ios 开发的更多信息并提出问题。有人感兴趣吗?

关于iphone - 进入 UIImagePickerController 编辑模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com