#ios #uilabel #autolayout #pixels
#iOS #uilabel #автозаполнение #пиксели
Вопрос:
Я строю UITableCellView
из xib. Этот xib использует autolayout
и два UILabel
s, подключенных к супервизору и имеющих вертикальное ограничение.
К сожалению, он вырезает пиксели в нижней части UILabel
:
Чего мне не хватает?
UPD. Xcode выдает ошибку: Set vertical compression resistance priority to 749
. Если я играю с приоритетом сопротивления сжатию, я получаю первую вырезанную этикетку.
Ответ №1:
Установите приоритет для ограничения вертикального интервала между двумя метками, чтобы он был ниже, чем ограничение вертикального интервала между метками и верхней и нижней частью представления. В качестве альтернативы, в вашем делегате переопределите
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
и
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
это вернет высоту, которая будет соответствовать ограничениям и высотам меток. По умолчанию я полагаю, что вы получаете 44 пикселя, поэтому вы можете получить более высокую ячейку, переопределив их. Кроме того, вы можете задать высоту ячейки в IB, если используете раскадровки или Nibs.
Комментарии:
1. Увеличение высоты ячейки не помогает. Я также обновляю вопрос с ошибкой xcode
2. Интересно, что я обычно не утруждаю себя изменением сопротивления сжатию, так как мне нравится оставлять свои элементы несжатыми и просто оставлять им достаточно места. @EugenMartynov Вы пробовали изменить высоту ячейки на пользовательскую в вашей UITableViewCell в IB?
3. Я забыл упомянуть, что также изменение приоритета для ограничения между метками не помогло. Но это ограничение имеет константу 1. Так что, возможно, это проблема, когда он выполняет вычисление высоты ячейки.
4. Высота уже настроена на заказ, и увеличение высоты не помогает
5. Обычно происходит так, что если меткам не хватает места для выполнения всех своих ограничений, то нарушается та, у которой самый низкий приоритет. Что вы должны видеть, так это то, что если на ярлыках недостаточно места, они начинают сталкиваться друг с другом. У вас ведь есть следующие ограничения, не так ли? По вертикали между верхней частью ячейки и первой меткой, по вертикали между верхней меткой и нижней меткой и по вертикали между нижней меткой и нижней частью ячейки? Вам не нужно будет делать ничего другого.