Подтвердить что ты не робот

IOS 7 Несоответствие высоты UIDatePicker?

Я сталкиваюсь с чем-то странным при использовании элементов UIDatePicker со Storiesboards в iOS 7. В раскадровке сборщик дат имеет фиксированную высоту 162. В действительности, однако, элемент занимает больше места, чем это. Итак, это

Storyboard

превращается в это:

Simulator

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

4b9b3361

Ответ 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: