Переместить uipickerview

У меня есть такая проблема: если я использую uidatepicker, все идет хорошо: у меня есть этот код:

datePickerView.frame = CGRectMake(0, 264, 320, 216);
datePickerView.bounds = CGRectMake(0, -108, 320, 216);

и DatePicker наполовину снизу (как я хочу (только для теста))

но если я использую uipickerview, и я использую тот же код:

genderPickerView.frame = CGRectMake(0, 264, 320, 216);
genderPickerView.bounds = CGRectMake(0, -108, 320, 216);

но окно выбора находится внизу, а не наполовину внизу, как средство выбора даты... в чем проблема?? заранее спасибо!

1 ответ

Решение

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

Посредством установки начала координат у -108 источник прорисовываемой области вида теперь на 108 пикселей выше фактической позиции вида. в общем, вы никогда не хотите устанавливать начало координат, особенно если у вас нет элемента управления. Просто используйте положение кадра: 0,156, 320, 216, и они оба должны вести себя одинаково.

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

Другие вопросы по тегам