IOS 7 Несоответствие высоты UIDatePicker?
Я сталкиваюсь с чем-то странным при использовании элементов UIDatePicker со Storiesboards в iOS 7. В раскадровке сборщик дат имеет фиксированную высоту 162. В действительности, однако, элемент занимает больше места, чем это. Итак, это
![Storyboard]()
превращается в это:
![Simulator]()
поэтому я должен переместить все под ним вниз, угадать и зазеркали, сколько места будет выбирать сборщик дат. Это ошибка? Я делаю что-то неправильно? Чтобы быть понятным, сборщик дат полностью прозрачен - не может понять, как это сделать. Белый фон наверху - это основной UIView, а серый фон - фон UITableView, встроенный в представление контейнера.
Ответы
Ответ 1
Я могу подтвердить, что использование UI(Date)Picker
в раскадровки имеет разную высоту (162.0), чем в "реальности" (216.0). Поэтому вам нужно отрегулировать пространство в представлении контейнера, чтобы оно соответствовало этой "реальной" высоте выбора даты, или попытаться решить его с помощью автоматической компоновки.
Ответ 2
Вот забавный трюк, который я только что нашел: поставьте UIDatePicker
внутри выделенного представления с ограничением по 162 точкам (добавьте 0 точечных вертикальных ограничений сверху и снизу сборщика к этому новому супервизу). Это, по-видимому, влияет на то, чтобы заставить сборщика сохранить размер 162 пункта.
Вы можете добавить опцию отсечения подсмотров, чтобы убедиться, что UIDatePicker
не выйдет из новой тюрьмы.
EDIT: после нескольких тестов кажется, что просто добавив ограничение высоты 162 пункта к UIDatePicker
, он сохранит свой "размер IB". И, чтобы ответить на комментарий @Andrew, вот что это будет выглядеть:
![UIDatePicker constraint to 162 point in height]()
Ответ 3
Вы можете изменить ширину и высоту, просто указав ограничения ширины и высоты. Не делая этого, UIDatePicker просто действует странно, я нашел.
Ответ 4
Настройка свойства clipToBounds для YES на моем объекте UIDatePicker помогла мне.
datePicker.clipsToBounds = YES;
Для XIB вы можете напрямую установить галочку для Clip Subviews:
![]()