Несколько UILabels внутри саморазмерного UITableViewCell

В этом приложении для iOS 8, которое я создаю, у меня есть таблица, и мне нужно, чтобы она самостоятельно меняла размеры. Я реализовал это с помощью Auto Layout, и это работает. Почти. Вот как это выглядит сейчас.

Внутри ячейки 3 ярлыка. Основная метка с текстом lorem ipsum. Подзаголовок, в котором есть строка чисел (это две отдельные метки. Может быть, это сбивает с толку, потому что они одного цвета.) Затем третья метка с маленьким черным текстом.

Первый ярлык изменил свой размер без проблем, а второй перемещается вверх и вниз соответственно. Но проблема в третьем маленьком ярлыке. Как вы можете видеть, его размер не изменяется, чтобы соответствовать всему тексту.

Теперь происходит странная вещь. Я переворачиваю это пейзаж и вот оно.

Так как есть место, метка отображает весь текст, который должен. Хорошо. Затем я возвращаюсь к портрету.

Теперь маленькая метка изменила размеры, чтобы вместить весь текст, но она выходит за границы ячеек. Я пытался сделать камеру больше, но это не сработало. Так как это самоконтролирующие клетки, я даже не думаю, что это правильный путь.

Я не получаю никаких ошибок или даже предупреждений о моих ограничениях автоматического размещения.

Я установил эти две строки кода вviewDidLoad() метод.

tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension

Может кто-нибудь сказать мне, что я могу делать здесь не так?

Поскольку ответить на него сложно, просто посмотрев изображения, и у меня больше нет кода для публикации рядом с приведенным выше фрагментом, я загрузил работающий проект Xcode, демонстрирующий проблемуВот, (Есть 2 пользовательских ячейки. В основном это та же самая ячейка, только высота увеличивается во второй.)

Я возился с ограничениями автоматического размещения, но я не могу заставить это работать. Любая помощь будет оценена.

Спасибо.

ОБНОВИТЬ:

С помощью этогоруководство Я нашел несколько полезных указателей. Согласно этому, каждое подпредставление должно иметь ограничения, которые прикрепляют все его стороны, и должны быть ограничения, идущие сверху вниз, что помогает автоматическому макету вычислять высоту ячейки. В моем исходном посте у меня были вертикальные промежутки между каждой меткой, поэтому я думаю, что по этой причине автоматическая разметка не может рассчитать правильную высоту.

Поэтому я внес некоторые изменения.

Я уменьшил вертикальное пространство между метками до 0 и установил вертикальные ограничения пространства между верхней и средней метками и средней и нижней метками.Я добавил ведущие, верхние, конечные ограничения на верхнюю метку.Ведущий и тянущийся к середине лейбл.Ведущий, нижний, тянущийся к нижней метке.

Теперь вот еще одна странная часть. Когда я впервые запускаю его, проблема обрезки нижней метки все еще остается.

Но если я поверну устройство в горизонтальное положение и верну его в портретное положение, все ячейки будут изменены в соответствии с обеими метками!

Тем не менее, до сих пор не могу понять, почему этого не происходит. Обновленный проект XcodeВот.

Ответы на вопрос(5)

Ваш ответ на вопрос