Я использую стандартное представление UIPicker в качестве inputView для текстового поля в приложении iPhone. Когда представление загружается либо в альбомной, либо в книжной ориентации, размер средства выбора совпадает с размером соответствующей клавиатуры. Однако, когда вы поворачиваете устройство один раз внутри представления, средство выбора не изменяет его высоту должным образом, как это происходит с его шириной. У меня установлен UIViewAutoresizingFlexibleWidth. Когда я попытался установить UIViewAutoresizingFlexibleHeight, средство выбора перепуталось (изменчивая графика, обрезание компонента) при вращении, хотя высота правильная! Кто-нибудь понял это?
UIPickerView, поскольку inputView сбивается при изменении ориентации
Ответы (2)
Я обнаружил, что если вы работаете с iOS 7, просто добавьте:
pickerView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
Это решило проблему для меня. Переход не очень прерывистый, похоже, он "должен" выглядеть.
person
Robert Bentley
schedule
03.02.2014
Я нашел пластырь:
В didRotateFromInterfaceOrientation:
вашего хостинга viewController вызовите setNeedsLayout
в этом представлении выбора. Странные сбои макета видны во время поворота, но убираются в конце.
person
rgeorge
schedule
10.01.2012
Этот pickerView является inputView текстового поля. Поэтому к нему нельзя получить доступ в родительском ViewController
- person Ace Green; 07.10.2015