Идея заключается в том, чтобы изменить высоту ячейки автоматически на основе нескольких элементов управления высот. Как вы можете видеть на изображении выше, у меня есть Верхняя метка и Нижняя метка. Эти две метки могут иметь разную высоту на основе длины текста.
Несколько слов о настройке в раскадровке.
Я установил число строк в 0 для двух описанных меток, чтобы позволить динамически увеличивать их высоту на основе заданного текста.
Для Top Ярлык У меня есть следующие ограничения:
для Bottom Ярлык У меня есть следующие ограничения:
Так что мы говорим о вертикальной расстояние между 1000 зеленой меткой и нижней меткой каждый раз одинаково:
Но без этого расстояние между ячейками не будет растягиваться по высоте. Как уменьшить этот вертикальный интервал? Потому что между ярлыком «1000 зеленая» и нижней меткой существует большое расстояние, если верхняя метка имеет большую высоту из-за текста.
-viewDidLoad
В методе я установил:
[self.theTableView setEstimatedRowHeight:145];
[self.theTableView setRowHeight:UITableViewAutomaticDimension];
Кажется, он работает довольно прохладно, иногда с ошибкой, описанной здесь, но я не знаю, как ограничить это вертикальное расстояние:
http://www.appcoda.com/self-sizing-cells/
[Этот ответ] (http://stackoverflow.com/a/32063950/4151918) будет работать вокруг этой «ошибки», упомянутой в учебнике, где они предлагают «reloadData». –
@PetahChristian, reload data не работает для меня –
Если вы установите ширину, вам не нужно будет использовать reloadData. Если ячейка все еще не выровнена правильно, даже после прокрутки или перезагрузкиData, она указала на проблему с ограничениями.То, что вы пытаетесь сделать, немного сложно. У вас есть «левая» часть и «правая» часть, а более высокая из них будет определять фактическую высоту ячейки. Таким образом, левая и правая части должны иметь ограничение>>, поэтому они могут расширяться, если другая сторона выше, чем они есть. –