У меня скоро крайний срок, и передо мной очень раздражающая ошибка, и нет идей, как ее исправить. Проблема в том, что иногда устройство не знает, какова его ориентация, до того, как оно было повернуто, и поэтому оно перепутывает кадры в условных выражениях:
if (orient == UIInterfaceOrientationPortrait || orient == 0){
r = CGRectMake(0.0, 0.0, 320.0, 480.0);
// draw stuff
} else {
r = CGRectMake(0.0, 0.0, 480.0, 320.0);
// draw stuff
}
Эта ошибка может быть легко воспроизведена, если я держу устройство на столе или в руках (горизонтальное положение) и запускаю свое приложение, оно рисует ландшафтоподобные прямоугольники на экране портретного типа.
Мои вопросы: могу ли я как-то получить правильную ориентацию в такой ситуации? Жаль, что это не может быть воспроизведено в симуляторе, поэтому я не уверен, что код, который я вставил, ответственен за эту ошибку, но это место, где я исправляю рамки вида в соответствии с ориентацией. Может быть, есть другой (правильный) способ сделать это? И, может быть, я могу заставить приложение работать в портретном режиме, пока не сработает событие поворота?