#iphone #ipad
#iPhone #iPad
Вопрос:
Я разрабатываю приложение для iPad в ландшафтном режиме.Я установил во всех контроллерах просмотра значение return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);. но когда я даю изменить рамку просмотра с помощью следующего кода, она не меняется, она занимает весь экран ipad.Как я могу преодолеть эту проблему, любая помощь, пожалуйста?Я тоже попробовал view.frame.
-(IBAction)category_Click:(id)sender
{
CGRect rect = _categoryController.view.bounds;
rect.origin.x = 0;
rect.origin.y = rect.origin.y;
rect.size.width = 1024;
rect.size.height = 650;
_categoryController.view.bounds = rect;
_categoryController.view.bounds = CGRectMake(rect.origin.x, rect.origin.y,1024, 650);
[self presentModalViewController:_categoryController animated:YES];
}
Комментарии:
1. Сначала. Вы рассказываете о
frame
, но ваш код оbounds
.2. я пробовал оба .. я упомянул в своем вопросе?
Ответ №1:
Вы пробовали настраивать рамку после представления ViewController? Я считаю, что presentModalViewController:animated:
метод может иногда изменять фрейм во время его выполнения. Возможно, вам даже придется подождать, пока анимация не будет завершена.
Если это возможно, возможно, попробуйте настроить фрейм представления в методе ‘-(void)viewDidAppear:’ класса _categoryController
‘s.
В целом, однако, я обнаружил, что плавное изменение внешнего вида контроллера модального представления затруднено.
Ответ №2:
Проверьте modalPresentationStyle
свойство
_categoryController.modalPresentationStyle = UIModalPresentationFormSheet;
_categoryController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:_categoryController animated:YES];
_categoryController.view.superview.frame = CGRectMake(0, 0, 818, 739);
_categoryController.view.superview.center = self.view.center;