Я обновил свой iPhone и SDK до iOS 4.0.1, и теперь мое приложение работает не так, как в iOS 3. Икс.
Мое приложение использует UIImagePickerController с пользовательским cameraOverlayView (который я опущу в этом посте). Главное, что мне нужно видеть камеру iphone в полноэкранном режиме. Чтобы перейти непосредственно к проблеме, я добавлю немного кода и снимков экрана, чтобы объяснить, что происходит.
Я создал приложение на основе представления, используя проекты шаблона XCode с именем «CameraTransform», поэтому получил два класса: CameraTransformAppDelegate
и CameraTransformViewController
, хорошо! В методе CameraTransformViewController
viewDidAppear
я поместил следующий код:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
//[self configurePicker_FirstAttempt:picker]; Use this!
//[self configurePicker_SecondAttempt:picker]; Use this too!
[self presentModalViewController:picker animated:YES];
}
- (void)configurePicker_FirstAttempt:(UIImagePickerController*) picker {
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
// not needed (use defaults)
//picker.toolbarHidden = YES;
//picker.wantsFullScreenLayout = YES;
}
- (void)configurePicker_SecondAttempt:(UIImagePickerController*) picker {
// Transform values for full screen support
CGFloat cameraTransformX = 1.0;
CGFloat cameraTransformY = 1.12412;
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, cameraTransformX, cameraTransformY);
}
Запуск проекта с / i получил:
configurePicker_FirstAttempt
и ] configurePicker_SecondAttempt
вызовы метода прокомментированы: defaultPicker. cameraViewTransform (после масштабирования), например: CGAffineTransformTranslate (picker.cameraViewTransform, 0.0, 20.0);
и я понял, что была некоторая часть «вида камеры», которая была скрыта (возможно, это origin не был 0.0, 0.0), поэтому я получил больше «вида камеры» на экране. Похоже, что в новом SDK UIImagePickerController каким-то образом изменился, возможно, элементы управления камерой имеют разные размеры или что-то похожее.
У кого-нибудь была такая проблема?