0

早上好。

我遇到了 UIImagePickerController 除了白色之外没有显示任何内容的问题。我的主头文件中有一个 320x320 UIImageView:

IBOutlet UIImageView *_cameraView;

随着:

@property (nonatomic, retain) UIImagePickerController *_cameraPicker;
@property (nonatomic, retain) UIImage *_noCam;

_noCam 是在用户没有相机时放置在视图中的图像。这很好用。

我正在尝试在这个方形视图顶部显示(没有标准相机 GUI,但现在可以等待)相机。在我的主要课程中,我有:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"viewDidAppear did appear too");
//camera view etc
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
    //code here to not allow picture taking, probably put up something saying you don'thave a camera on your device
    NSLog(@"no cam available");
    _noCam = [UIImage imageNamed:@"noCam.png"];
    [_cameraView setImage:_noCam];
} else {
    //take the shot
    _cameraPicker = [[UIImagePickerController alloc] init];
    _cameraPicker.delegate = _cameraView;
    _cameraPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    NSLog(@"cam is available");
}

}

我猜我在设置委托时遇到了问题。_self 给我一个类型的错误:

'来自不兼容的类型'ViewController *const _strong'

我正在使用 NSLogs 来检查方法是否正常工作,它告诉我调用了 viewDidLoad 和 viewDidAppear 方法并且检测到了摄像头但是我只是得到了白色视图。

任何帮助将不胜感激。

谢谢。

4

1 回答 1

0

您需要以某种方式显示选择器,您可以使用默认 GUI:

  [self presentModalViewController:_cameraPicker animated:YES];

或者查看UIImagePickerControllercameraOverlayView

于 2012-05-03T08:20:15.647 回答