Как я могу получить доступ к interfaceOrientation в пользовательском CALayer? - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть пользовательский CALayer, который должен выглядеть по-разному в зависимости от ориентации интерфейса. Есть ли способ, которым я могу получить доступ к interfaceOrientation View Controller, где я использую этот CALayer?

Или мне придется установить свойство в пользовательском слое, указывающее текущую ориентацию при каждом его изменении?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Вы можете установить свойство на пользовательском слое.

Или вы можете присвоить пользовательскому слою свойство, которое ссылается на контроллер представления, чтобы он мог просто запросить у контроллера представления ориентацию интерфейса, когда слой должен знать.

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

0 голосов
/ 15 февраля 2012
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

возвращает UIInterfaceOrientation, текущую ориентацию строки состояния приложения.


UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; возвращает UIDeviceOrientation, ориентацию устройства.Но учтите, что UIDeviceOrientation не всегда UIInterfaceOrientation.Например, когда ваше устройство находится в простой таблице, вы можете получить неожиданное значение.

...