UIImagePickerController cameraOverlayView не может быть полноэкранным на iPad - PullRequest
3 голосов
/ 07 декабря 2011

это мой код:

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];

И это похоже на iPad 2 с iOS 4.3.2:
извините, я не могу опубликовать изображение
Я хочу, чтобы он мог делать снимки, когда пользователь нажимает в любом месте экрана.
Прости, мой плохой английский.

1 Ответ

0 голосов
/ 08 декабря 2011

Я решил этот вопрос сам: просто сбросьте размер 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];

Хотя это не элегантно, но работает :) 1009 *

...