#ios #xcode #uiimagepickercontroller #augmented-reality #cameraoverlayview
#iOS #xcode #uiimagepickercontroller #дополненная реальность #cameraoverlayview
Вопрос:
Я работаю над приложением, которое помещает метки городов поверх CameraView для дополненной реальности. Когда я открываю камеру, я скрываю элементы управления, панель навигации и панель инструментов. Я использую следующий код, который я нашел в Интернете, чтобы изменить размер режима просмотра с камеры, чтобы охватить весь экран. У меня есть только iPhone 7 в альбомном режиме. Когда я использую это, высота экрана равна 320 (вместо 375, что должно быть), а длина равна 677. Как я могу сделать так, чтобы размер экрана соответствовал фактическому размеру экрана телефона, и как мне изменить его для каждого отдельного iPhone? Я не могу использовать это в симуляторе для просмотра, поскольку вы не можете использовать дополненную реальность в симуляторе.
picker = [[UIImagePickerController alloc] init];
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypeCamera ;
picker.showsCameraControls = NO;
self.picker.navigationBarHidden = YES;
self.picker.toolbarHidden = YES;
if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
CGSize screenSize = [[UIScreen mainScreen] bounds].size; // 320 x 568
float scale = screenSize.width / screenSize.height*5/3; // screen height divided by the pickerController height ... or: 568 / ( 320*4/3 )
CGAffineTransform translate=CGAffineTransformMakeTranslation(0,(screenSize.height - screenSize.width*4/3)*0.5);
CGAffineTransform fullScreen=CGAffineTransformMakeScale(scale, scale);
picker.cameraViewTransform =CGAffineTransformConcat(fullScreen, translate);
Я не понимаю логики, стоящей за этим, и думаю, что изначально это предназначено для iPhone SE. Если есть руководство, объясняющее это, или если кто-нибудь может объяснить это мне, я был бы очень признателен.
Спасибо