Как преобразовать панель навигации и контроллер навигации в альбомный режим

StackOverflow https://stackoverflow.com/questions/601397

  •  03-07-2019
  •  | 
  •  

Вопрос

Я разрабатываю игру, в которой использую ландшафтный режим. Всего у меня 4 вида.2 вида корректно отображаются в ландшафтном режиме.Но в третьем представлении у меня есть UITable и панель навигации.Я могу вращать таблицу в ландшафтном режиме, но не могу трансформировать панель навигации и контроллер навигации.На панели навигации и контроллере навигации также есть кнопка.Оно также не трансформируется.Так может у кого-нибудь есть решение по этому поводу.:)

Это было полезно?

Решение

Измените панель навигации контроллера навигации, повернув ее на 90 градусов.Также вам может потребоваться установить центр навигационных стержней и рамку для установки правильной ширины, чтобы соответствовать режиму ландшафта. Он работал для меня :) Надеюсь, это также поможет вам.

Другие советы

#define degreesToRadians(x) (M_PI * x / 180.0)

- (void)viewWillAppear:(BOOL)animated
{

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

    CGRect newBounds = CGRectMake(0, 0, 480, 320);
    self.navigationController.view.bounds = newBounds;
    self.navigationController.view.center = CGPointMake(newBounds.size.height / 2.0, newBounds.size.width / 2.0);

    self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));

    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    self.navigationController.view.transform = CGAffineTransformIdentity;
    self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(0));
    self.navigationController.view.bounds = CGRectMake(0.0, 0.0, 320.0, 480.0);

    [super viewWillDisappear:animated];
}

В классе документации UIViewController:

Обработка вращений

Свойство InterfaceOrientation
– mustAutorotateToInterfaceOrientation:
— вращающийся нижний колонтитул
— вращающийсяHeaderView
– willRotateToInterfaceOrientation:продолжительность:
– willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
– willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:
– сделалRotateFromInterfaceOrientation:

надеюсь, это поможет и вам.

А.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top