这是我的代码:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
picker.allowsEditing = NO;
picker.delegate = self;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;
picker.wantsFullScreenLayout = YES;
UIView *overlay = [[UIView alloc] initWithFrame:CGRectZero];
overlay.backgroundColor = [UIColor greenColor];
overlay.alpha = 0.3;
overlay.clipsToBounds = NO;
UIButton *takePictureButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 1024, 1024)];
[takePictureButton addTarget:self action:@selector(takePictureButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
takePictureButton.backgroundColor = [UIColor purpleColor];
[overlay addSubview:takePictureButton];
picker.cameraOverlayView = overlay;
[takePictureButton release];
[overlay release];
_currentPicker = picker;
[self presentModalViewController:picker animated:YES];
[picker release];
在装有 iOS 4.3.2 的 iPad 2 上看起来像:
sorry, I can't post image
我想要的是当用户点击屏幕上的任意位置时它可以拍照。
请原谅我糟糕的英语。
最佳答案
我自己解决了这个问题:
只需重置 cameraOverlayView 的大小之后 呈现 UIImagePickerController。
代码如下:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
picker.allowsEditing = NO;
picker.delegate = self;
UIButton *takePictureButton = [[UIButton alloc] initWithFrame:CGRectZero];
[takePictureButton addTarget:self action:@selector(takePictureButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
picker.cameraOverlayView = takePictureButton;
[self presentModalViewController:picker animated:YES];
takePictureButton.frame = CGRectMake(0, 0, 1024, 1024);
[picker release];
[takePictureButton release];
虽然它不优雅,但它有效:)
关于iphone - UIImagePickerController cameraOverlayView在iPad上无法全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8413636/