Уведомление о блокировке ориентации iPad? - PullRequest
3 голосов
/ 17 апреля 2010

Есть ли способ получить уведомление, когда iPad заблокирован ориентацией? Когда блокировка ориентации включена или выключена, она отправляет уведомление о ReceiveRotate:, но мне нужен способ, чтобы отличить обычные вращения от «вращений» блокировки.

Проблема в том, что я вращаю вещи на мой взгляд, когда вращение меняется. Когда блокировка активирована, iPad отправляет полученный Rotate: с UIInterfaceOrientationPortrait.

Я искал в UIDevice что-то вроде isOrientationLocked, но безуспешно.

Спасибо за любые подсказки по этому поводу.

РЕДАКТИРОВАТЬ: Когда блокировка ориентации iPad включена, он отправляет уведомление о том, что поворот по какой-то причине изменился на портретный. Это заставляет элементы вращаться, так как они вращаются с любым изменением ориентации. Это то, что я хочу предотвратить.

EDIT2: Да, iPad не должен отправлять портретное уведомление, но это происходит. После этого портретного уведомления iPad перестает отправлять уведомления, как и должно быть. Это просто начальное уведомление, которое находится в пути.

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

РЕДАКТИРОВАТЬ3: полученныйRotate: вызывается с UIInterfaceOrientationPortrait для всех ориентаций.

Ответы [ 2 ]

1 голос
/ 19 июля 2010

Видимо, сейчас работает.

Я недавно вернулся в свой старый проект после установки последней версии XCode & iPhone SDK, и я больше не получаю UIInterfaceOrientationPortrait при включенной блокировке. Я вообще не изменил свой код, поэтому это должно быть Apple.

0 голосов
/ 21 апреля 2010

Просто чтобы прояснить, вы только используете уведомления о вращении, чтобы определить свои вращения? Вы не извлекаете данные из акселерометра или тому подобного, чтобы получить ориентацию?

Еще одна вещь заключается в том, что блокировка - это просто блокировка, она не должна заставлять вас переходить в портретный режим, если вы находитесь в альбомной ориентации. Это должно просто держать вас в ландшафте.

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

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

...