Uidatepicker искажается, нужна помощь - PullRequest
2 голосов
/ 26 февраля 2011

В моем приложении я показываю UIDatePicker и по какой-то причине оно искажается.
Итак, основное объяснение этому случается в том, что я перехожу из ландшафтного режима в портретный режим, чтобы показать вид с моим UIDatePicker. Я не вращаю эту точку зрения. Я просто показываю этот вид из другого view, который был в landscape mode. На самом деле я не изменяю поворот этого представления вообще.

Вы можете увидеть на фото ниже, что именно происходит

вот фотография IB.

enter image description here

и картинка симулятора.

enter image description here

PS: я также пытался создать сборщик из кода и все тот же результат. Спасибо за вашу помощь.

Ответы [ 3 ]

3 голосов
/ 28 февраля 2011

То, что сказал NR4TR, правильно.Поскольку предыдущий вид находится в альбомной ориентации, сборщик искажается.Вы можете попробовать сохранить IB (содержащий вид выбора) в ландшафтном режиме.Я надеюсь, что это решит проблему.

3 голосов
/ 21 июля 2011

Я столкнулся с той же проблемой. Когда вы загружаете представление, когда оно уже находится в альбомной ориентации, UIPicker отображается неправильно. Я потратил несколько часов, пытаясь найти обходной путь, пока не нашел исправление от этой страницы от Llamagraphics . Вы добавляете этот код в viewDidLoad контроллера представления, у которого есть средство выбора:

for (UIView* subview in myPicker.subviews) {
    subview.frame = myPicker.bounds;
}

Посетите веб-страницу для более подробной информации. Спасибо, Стюарт!

1 голос
/ 26 февраля 2011

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

...