UITableViewCell
и UITableViewHeaderFooterView
с использованием макета Autolayout
[ Xib
, StoryBoard
, Masonry
, SnapKit
, SDAutoLayout
...], поддерживает горизонтальные и вертикальные экраны, автоматически управляет внутренним кешем высоты и является совместим со Свифтом. pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage — это децентрализованный менеджер зависимостей, который создает ваши зависимости и предоставляет вам двоичные платформы. Чтобы интегрировать UITableViewDynamicLayoutCacheHeight, добавьте следующее в свой Cartfile.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
]UITableViewDynamicLayoutCacheHeight
в свой проект. Cell
построен с использованием Xib
. «Он также поддерживает чистую компоновку кода, если используется Autolayout ».- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
. UITableView
自动算高
и自动缓存高度
. Эффект следующий: Swift Xib Демо
Демонстрация макета чистого кода Swift
Дополнительные сведения об использовании см. в API файла UITableView+BMDynamicLayout.h.
Создайте ячейку заранее, затем заполните содержимое, затем принудительно разметите, затем получите представление с наибольшим значением MaxY в ячейке, а затем примите значение MaxY этого представления в качестве высоты, необходимой для ячейки [поэтому保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
Crucial], операции сохранения и очистки кэша автоматически управляются изнутри.
Каждый должен быть хорошо осведомлен о недостатках автоматического высокого расчета системы, таких как: отсутствие кэширования, повторные расчеты, переходы интерфейса, а также из-за прокрутки и расчета в ячейках со сложным макетом, есть некоторые проблемы. Он поддерживает только iOS8+. и макет должен заполнять всю ячейку. В макете В некоторых сценариях необходимо установить приоритет, в противном случае будут сообщаться о конфликтах ограничений.
UITableView-FDTemplateLayoutCell Вначале я использовал этот фреймворк. В то же время дизайн API также был основан на FDTemplateLayoutCell. Я также использовал несколько материалов. Спасибо, но есть некоторые ошибки, которые не решены. заполнить всю ячейку. Некоторым сценам необходимо установить приоритеты во время макета, иначе будут сообщаться о конфликтах ограничений, поэтому они были перенесены в UITableViewDynamicLayoutCacheHeight.
Дефекты UITableViewDynamicLayoutCacheHeight:
На основе этого фреймворка была реализована простая функция WeChat Moments. Код WeChat Moments был случайно написан несколько лет назад. Я не готов его корректировать. Если интересно, можете посмотреть.
UITableViewDynamicLayoutCacheHeight выпускается под лицензией MIT. Подробности см. в разделе ЛИЦЕНЗИЯ.