UIImagePickerController takePicture 关闭控制器
UIImagePickerController takePicture Dismisses Controller
我有一个很好用的自定义 UIImagePickerController
,只是我遇到了一个我认为应该相当简单的问题 - 我只是还没有找到解决方案。
触摸我自定义添加的 "photo" 按钮后,我将其定位到 UIIPC 的 takePicture
方法中的构建。这是我的代码
@interface CustomCameraController ()
@end
@implementation CustomCameraController {
CGFloat width, height;
}
- (instancetype)init {
if (self = [super init]) {
width = self.view.frame.size.width, height = self.view.frame.size.height;
self.allowsEditing = YES;
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.toolbarHidden = YES;
[self buildCameraOverlay];
}
return self;
}
- (void)buildCameraOverlay {
UIView *customOverlay = [UIView alloc] ...
// ... Custom overlay setup done here
_takePhoto = [[CustomButton alloc] initWithFrame:CGRectMake(0, 0, heightBottomBar*.5, heightBottomBar*.5)];
_takePhoto.center = CGPointMake(bottomBar.frame.size.width/2, bottomBar.frame.size.height/2);
[_takePhoto setImage:[UIImage imageNamed:@"camera button icon"] forState:UIControlStateNormal];
[_takePhoto addTarget:self action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];
[bottomBar addSubview:_takePhoto];
// ...
self.cameraOverlayView = customOverlay;
}
这是在我的自定义控制器 CustomCameraController init
调用中完成的。
问题是,通过takePicture
拍照后,相机快门关闭,一切正常,但控制器自行关闭。我想弄清楚如何阻止它在拍照后立即关闭,所以我可以 A)展示拍摄的照片,B)让用户选择图像或取消并重新拍摄另一张(返回到相机)
如果有人知道为什么会发生这种情况或我遗漏/做错了什么,请告诉我。我确定这是一个简单的答案 - 只是似乎无法弄清楚。谢谢!
出现这种奇怪行为的最常见原因通常是缺少委托方法(在本例中为 UIImagePickerController
)或错误的实现。
我有一个很好用的自定义 UIImagePickerController
,只是我遇到了一个我认为应该相当简单的问题 - 我只是还没有找到解决方案。
触摸我自定义添加的 "photo" 按钮后,我将其定位到 UIIPC 的 takePicture
方法中的构建。这是我的代码
@interface CustomCameraController ()
@end
@implementation CustomCameraController {
CGFloat width, height;
}
- (instancetype)init {
if (self = [super init]) {
width = self.view.frame.size.width, height = self.view.frame.size.height;
self.allowsEditing = YES;
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.toolbarHidden = YES;
[self buildCameraOverlay];
}
return self;
}
- (void)buildCameraOverlay {
UIView *customOverlay = [UIView alloc] ...
// ... Custom overlay setup done here
_takePhoto = [[CustomButton alloc] initWithFrame:CGRectMake(0, 0, heightBottomBar*.5, heightBottomBar*.5)];
_takePhoto.center = CGPointMake(bottomBar.frame.size.width/2, bottomBar.frame.size.height/2);
[_takePhoto setImage:[UIImage imageNamed:@"camera button icon"] forState:UIControlStateNormal];
[_takePhoto addTarget:self action:@selector(takePicture) forControlEvents:UIControlEventTouchUpInside];
[bottomBar addSubview:_takePhoto];
// ...
self.cameraOverlayView = customOverlay;
}
这是在我的自定义控制器 CustomCameraController init
调用中完成的。
问题是,通过takePicture
拍照后,相机快门关闭,一切正常,但控制器自行关闭。我想弄清楚如何阻止它在拍照后立即关闭,所以我可以 A)展示拍摄的照片,B)让用户选择图像或取消并重新拍摄另一张(返回到相机)
如果有人知道为什么会发生这种情况或我遗漏/做错了什么,请告诉我。我确定这是一个简单的答案 - 只是似乎无法弄清楚。谢谢!
出现这种奇怪行为的最常见原因通常是缺少委托方法(在本例中为 UIImagePickerController
)或错误的实现。