使用 xib 设置 cameraOverlayView

set cameraOverlayView with xib

我创建了一个简单的 xib 文件,在视图中间有一个 UIView 和一个 UILabel。然后我将 xib 的所有者设置为将使用它的 ViewController。我创建了一个从 UIView 到我的 ViewController 的出口并执行了以下操作:

imagePicker.cameraOverlayView = self.cameraOverlay;

我遇到的问题是当我打开相机时它没有出现。如果我以编程方式创建 UIView,它可以工作,但如果我使用 xib 文件,它似乎不起作用。

下面是我设置叠加层和相机的代码:

- (IBAction)takeVideo:(id)sender {
    UIImagePickerController *imagePicker =
    [[UIImagePickerController alloc] init];
    NSArray *availableTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
    if ([availableTypes containsObject:(__bridge NSString *)kUTTypeMovie]) {
        [imagePicker setMediaTypes:@[(__bridge NSString *)kUTTypeMovie]];
    } 
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.delegate = self;
    imagePicker.cameraOverlayView = self.cameraOverlay;

    [self presentViewController:imagePicker animated:YES completion:nil];
}

camerOverlay 是(强,非原子)

你在代码中加载了 nib 了吗?

self.cameraOverlay = [[[NSBundle mainBundle] loadNibNamed:@"YourNibNameHere" owner:self options:nil] objectAtIndex:0];

将其放入您的 viewDidLoad 方法中。