У меня есть пользовательская ячейка таблицы, которая содержит несколько UILabels. Во время выполнения я корректирую высоту надписей, чтобы они соответствовали их содержимому, используя sizeWithFont:constrainedToSize:lineBreakMode:
и меняю их положение соответствующим образом. Последняя метка в ячейке содержит большое количество текста, что приводит к ее переносу, и у меня возникла очень странная проблема. Хотя вызов sizeWithFont
возвращает правильный размер, и я устанавливаю фрейм UILabel на эту высоту, он делает пару строк короткими. Этот скриншот иллюстрирует то, о чем я говорю:
В этом примере высота полного блока текста должна быть 90 (как проверено в Интерфейсном Разработчике), и это то, что возвращается из sizeWithFont
. Это также высота, на которую установлен фрейм UILabel, которую я проверил, войдя в систему, а также остановив выполнение и проверив значение. Однако, как вы можете видеть, он явно , а не рисует все 90 пикселей в высоту, хотя он правильно выделяет пространство для него (тонкая черная линия над «Отредактировано» - это граница ячейки таблицы). Я полностью сбит с толку. Если кто-нибудь может подсказать, почему он так себя ведет, я был бы очень признателен.