Есть идеи, почему эта точка зрения не вращается? - PullRequest
4 голосов
/ 26 октября 2011

Я работаю над контроллером просмотра фотографий, чтобы отображать некоторые фотографии в портретной и альбомной ориентации.Что я сделал, так это отредактировал ориентацию -(BOOL)shouldAutorotateToInterfaceOrientation с помощью приведенного ниже кода, но при тестировании в xcode (меню оборудования> Повернуть вправо) вид не поворачивается в альбомной ориентации.Что-то не так в том, что я сделал?

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Контроллер представления является частью приложения iphone на основе вкладок, и это представление не является корневым представлением: это проблема?

Ответы [ 7 ]

1 голос
/ 26 октября 2011

это может быть просто опечатка, но это не UIIinterfaceOrientation, это UIInterfaceOrientation

1 голос
/ 26 октября 2011

Моей первой идеей было бы просто return true;, чтобы убедиться, что нет проблем с параметрами, передаваемыми в / ваше сравнение (это выглядит хорошо для меня, но вы никогда не знаете).

Дальше будет, если это представление напрямую не прикреплено к окну (или другому объекту верхнего уровня, если вы используете xib), возможно, вам также придется возвращать true в любых родительских представлениях. Ради тестирования вы можете просто перезаписать:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIIinterfaceOrientation)interfaceOrientation
{
   return true;
}

для всех представлений (контроллеров) в дереве.

1 голос
/ 26 октября 2011

Также проверьте ваши поддерживаемые ориентации.Для XCode 4 (Проект-> Сводка (вкладка) -> Поддерживаемая ориентация устройства-> Требуемая ориентация).

0 голосов
/ 07 апреля 2012

Я не уверен, что это ошибка типа или разница издания, в моем последнем Xcode метод выглядит следующим образом:

- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation

ихорошо работает, вам не хватает аргумента "до"?

0 голосов
/ 26 октября 2011

Вы ищете не в том месте: в вашем файле RootViewController.m найдите следующий код:

#elif GAME_AUTOROTATION == kGameAutorotationUIViewController
//
//lots of useless comments
//
return (UIInterfaceOrientationIsPortrait(interfaceOrientation) ); //THIS LINE HERE

строка с надписью return (UIInterface ... Portrait) - это строка, которая определяетвращающиеся возможности.Вы можете изменить это на что угодно, чтобы позволить вам иметь возможность полностью вращаться, удерживать его в определенной ориентации или как угодно ...

также в этом

 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIIinterfaceOrientation)interfaceOrientation
    {
      /* return (interfaceOrientation == UIIinterfaceOrientationPortrait || interfaceOrientation == UIIinterfaceOrientationLandscapeLeft || interfaceOrientation == UIIinterfaceOrientationLandscapeRight); */ //GET RID OF ALL THIS CRAP
return true; //do this instead, and if this doesn't work, try return YES;
}
0 голосов
/ 26 октября 2011

Убедитесь, что ViewController, в котором вы реализуете этот метод, является rootViewController окна. Кроме того, использование return (interfaceOrientation != UIIinterfaceOrientationPortraitUpsideDown) приятнее для чтения. ;)

Вызывается ли -shouldAutorotateToInterfaceOrientation вообще? Попробуйте записать что-нибудь в этом методе ...

0 голосов
/ 26 октября 2011

Метод, который вы хотите переопределить, - shouldAutorotateToInterfaceOrientation.В подписи вашего метода отсутствует Orientation в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...