使用 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
方法中。
我创建了一个简单的 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
方法中。