Высота по умолчанию UIPickerView
Как я могу программно получить высоту по умолчанию экземпляра UIPickerView в соответствии с разрешением и ориентацией устройства, на котором в настоящее время работает приложение?
Я бы не хотел использовать жестко заданное значение для этого параметра, в случае, если новые устройства будут поддерживать разные разрешения экрана и, таким образом, определит, что этот компонент имеет другой размер по умолчанию.
Ответы
Ответ 1
Предупреждение, которое увидел Андре, похоже, больше не происходит (XCode 4.2; iOS SDK 5.0). Если вы создаете его с помощью initWithFrame
и придаете ему высоту ноль, вы можете прочитать его высоту из свойства frame.height
:
uiPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 77, 320, 0)];
DLog(@"uiPickerView=%@",uiPickerView);
дает:
uiPickerView=<UIPickerView: 0x9a28c40; frame = (0 77; 320 216); layer = <CALayer: 0x9a28d00>>
Итак, высота 216 по умолчанию.
Я не смог найти определение для этого в заголовках, поэтому его чтение кажется самым безопасным способом.
Можно установить фрейм с ненулевой высотой, но Apple, говорят, этого не делают, и это, похоже, вызывает проблемы с рендерингом.
Ответ 2
Если вы создадите экземпляр с высотой 0, он будет переопределен с соответствующей высотой по умолчанию, и вы можете просто получить его frame.size.height
.
Однако на iPad это выдает предупреждение (проверено несколько дней назад). В конечном итоге мне пришлось использовать жестко настроенные значения для iPad...
P.S. Это было для UIDatePicker; не уверен, что это то же самое для UIPickerView.
Ответ 3
С автоматической компоновкой мне было интересно то же самое из-за того, что вы не можете прикрепить ее к нижней части.
Высота по умолчанию без изменений в UIPickerView 216px
![** UIPickerView **]()
Ответ 4
Вы можете использовать свойство frame для uipickerview.