Ios 带cameraOverlayView的UIImagePickerController-错位视图
我有一个带有自定义cameraOverlayView的Ios 带cameraOverlayView的UIImagePickerController-错位视图,ios,autolayout,Ios,Autolayout,我有一个带有自定义cameraOverlayView的UIImagePickerController 我创建的imagePicker如下所示: self.overlay = [self.storyboard instantiateViewControllerWithIdentifier:@"OverlayViewController"]; self.picker = [[UIImagePickerController alloc] init]; self.picker.sourceType =
UIImagePickerController
我创建的imagePicker如下所示:
self.overlay = [self.storyboard instantiateViewControllerWithIdentifier:@"OverlayViewController"];
self.picker = [[UIImagePickerController alloc] init];
self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.picker.showsCameraControls = NO;
// Insert the overlay
self.picker.cameraOverlayView = self.overlay.view;
self.overlay.pickerReference = self.picker;
self.picker.edgesForExtendedLayout = UIRectEdgeAll;
self.picker.extendedLayoutIncludesOpaqueBars = YES;
self.picker.delegate = self.overlay;
[self presentViewController:self.picker animated:NO completion:^{
}];
由于某些原因,OverlyViewController的视图放错了位置。似乎还没有计算出约束条件。但是,如果我显式调用[self.overlay view将出现:NO]代码>在完成块中,它们的布局似乎正确渲染
经过一些调查,似乎视图将出现
,并且覆盖视图控制器
未调用视图显示
但是,如果我从模式“custom gallery viewcontroller”返回imagePicker,则会调用这些方法
即:
rootVC->(无调用)->imagePicker->customGalleryVc
customGalleryVc(解除模式)->(调用WillAspect)->imagePicker
这是什么?我是否缺少视图层次结构的基础知识
谢谢大家! 仅当视图控制器添加到视图控制器层次结构中时,才会调用视图控制器生命周期方法
代码段的第一行仅实例化了VC。当您访问VC的view属性时,它的视图(您在IB中定义)被加载。仅此而已,没有其他事情发生
因此,建议您无需为自定义覆盖使用视图控制器。你只需要一个普通的UIView。使用IB,您可以在xib中创建覆盖,或者在故事板中将UIView对象拖动到当前VC的dock(如果添加了任何手势识别器,则会出现在场景的顶部栏)中,然后您可以通过创建IBOutlet来引用它们。请参阅更新的问题,当我从另一个模态视图控制器返回imagePicker时,会调用lifecycle方法。@Spoek我猜您是从覆盖VC中的一个控件展示了gallery VC。如果是这样,我认为系统可能会在某个时候将覆盖VC添加到VC层次结构中,因此当您返回时,它的生命周期称为正常生命周期。无论如何,这不是正确的方法UIImagePickerController
只需要一个独立的UIView作为其自定义覆盖,而不是来自其他地方的视图。