0

В моем приложении для iPad я записываю видео (UIImagePickerController в UIPopoverController).Невозможно установить размер UIPopoverController при изменении поворота устройства

Проблема в том, что при изменении ориентации устройства размер UIPopoverController уменьшается до 320x480 (для портрета) и 480x320 (для пейзажа). Удивительно, но точно такие же размеры (600x880) работают нормально, когда я его создаю, но не тогда, когда я его вращаю.

Вот как я инициализацией:

self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
popover.delegate = self; 
if ([[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationPortrait || [[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationPortraitUpsideDown) { 
    [self.popover presentPopoverFromRect:CGRectMake(109, 590, 550,500) inView:self.view permittedArrowDirections:0 animated:YES];//recordProtocolBtn.frame 
    [self.popover setPopoverContentSize:CGSizeMake(600, 880)]; 
} 
else { 
    [self.popover presentPopoverFromRect:CGRectMake(750, 110, 550, 600) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES]; 
    [self.popover setPopoverContentSize:CGSizeMake(600, 600)]; 
} 

ротации на портрет:

[self.popover dismissPopoverAnimated:NO]; 
[self.popover presentPopoverFromRect:CGRectMake(109, 590, 550,500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 
[self.popover setPopoverContentSize:CGSizeMake(600, 880)]; 

И во вращении пейзаж:

[self.popover dismissPopoverAnimated:NO]; 
[self.popover presentPopoverFromRect:CGRectMake(750, 110, 550, 600) inView:self.view permittedArrowDirections:0 animated:YES]; 
[self.popover setPopoverContentSize:CGSizeMake(600, 600)]; 
+0

@ downvoter вам не нужно проголосовать, если ваш мозг слишком крошечный, чтобы понять какой-то код. – Sufian

ответ

2

То, что я сделал это не строго решение, но обходное решение.

Я отключил уведомления об изменении ориентации при стрельбе, когда я представил UIPopoverController и включил их, когда я отклонил его, using help from this answer.

Таким образом, приложение работает плавно, потому что я думаю, что пользователям не понравится, когда приложение будет вращаться во время видеозаписи.