我正在尝试为相机添加叠加层.为此,我创建了以下事件方法:
- (IBAction)takePhoto:(id)sender {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
imagePicker.showsCameraControls = NO;
imagePicker.navigationBarHidden = YES;
imagePicker.toolbarHidden = YES;
imagePicker.wantsFullScreenLayout = YES;
// Overlay
// Insert the overlay
self.overlay = [[OverlayViewController alloc] initWithNibName:@"OverlayView" bundle:nil];
//[self.overlay.view setTranslatesAutoresizingMaskIntoConstraints:NO];
self.overlay.pickerReference = imagePicker;
imagePicker.cameraOverlayView = self.overlay.view;
imagePicker.delegate = self.overlay;
[self presentViewController:imagePicker animated:NO completion:nil];
} else{
[imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[imagePicker setDelegate:self];
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
按钮在这样的视图中居中.
但是在使用时,它在iPhone 4上显示如下.它不是垂直居中的.如果我尝试将按钮Slikaj固定在底部,则不可见,因为iPhone 4的屏幕尺寸小于iPhone 5.选中使用自动布局复选框(打开).我究竟做错了什么?
最佳答案 您的叠加视图由于某种原因导致其他帧尺寸.
您可以通过将imagePicker框架尺寸指定给叠加视图来修复它.
self.overlay = [[OverlayViewController alloc] initWithNibName:@"OverlayView" bundle:nil];
self.overlay.pickerReference = imagePicker;
self.overlay.frame = imagePicker.cameraOverlayView.frame;
imagePicker.cameraOverlayView = self.overlay.view;
imagePicker.delegate = self.overlay;