it-swarm.com.ru

iOS 7 UIDatePicker несоответствие высоты?

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

Storyboard

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

Simulator

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

40
Andrew

Я могу подтвердить, что использование UI(Date)Picker в раскадровке имеет другую высоту (162,0), чем в «реальности» (216,0). Поэтому вы должны отрегулировать пространство для представления контейнера, чтобы соответствовать этой «реальной» высоте выбора даты, или попытаться решить ее с помощью автоматического макета.

39
Florian Mielke

Вот забавный трюк, который я только что нашел: поместите UIDatePicker внутри выделенного вида с ограничением в 162 точки по высоте (добавьте вертикальные ограничения в 0 пунктов сверху и снизу средства выбора к этому новому суперпредставлению). Похоже, это заставляет сборщика сохранять размер 162 пункта.

Вы можете добавить опцию отсечения подпредставлений, чтобы быть уверенным, что UIDatePicker не выйдет из своей новой тюрьмы.

Правка: после еще нескольких тестов, кажется, что, просто добавив ограничение высоты 162 точки к UIDatePicker, он сохранит свой «размер IB». И, чтобы ответить на комментарий Эндрю, вот как это будет выглядеть:

UIDatePicker constraint to 162 point in height

20
MonsieurDart

Вы можете изменить ширину и высоту, просто задав ей ограничения ширины и высоты. Без этого UIDatePicker ведет себя странно, я обнаружил.

1
c1pherB1t

Установка свойства clipsToBounds в YES для моего объекта UIDatePicker помогла мне.

datePicker.clipsToBounds = YES;

Для XIB вы можете прямо поставить галочку для Clip Subviews:

 

0
iAkki