UITableViewCell
und UITableViewHeaderFooterView
mithilfe Autolayout
Layouts [ Xib
, StoryBoard
, Masonry
, SnapKit
, SDAutoLayout
...], unterstützt horizontale und vertikale Bildschirme, verwaltet den Höhencache automatisch intern und ist kompatibel mit Swift. pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage ist ein dezentraler Abhängigkeitsmanager, der Ihre Abhängigkeiten aufbaut und Ihnen binäre Frameworks zur Verfügung stellt. Um UITableViewDynamicLayoutCacheHeight zu integrieren, fügen Sie Folgendes zu Ihrer Cartfile hinzu.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
]UITableViewDynamicLayoutCacheHeight
per Drag & Drop in Ihr Projekt. Cell
wird mit Xib
erstellt. „Es unterstützt auch reines Code-Layout, solange Autolayout verwendet wird.“- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
. UITableView
自动算高
und自动缓存高度
. Der Effekt ist wie folgt: Swift Xib-Demo
Schnelle reine Code-Layout-Demo
Weitere Informationen zur Verwendung finden Sie in der API der Datei UITableView+BMDynamicLayout.h.
Erstellen Sie die Zelle im Voraus, geben Sie dann den Inhalt ein, erzwingen Sie dann das Layout, rufen Sie dann die Ansicht mit dem größten MaxY in der Zelle ab und nehmen Sie dann das MaxY dieser Ansicht als die für die Zelle erforderliche Höhe [stellen Sie also保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
. Entscheidend] werden die Vorgänge zum Speichern und Löschen des Caches automatisch intern verwaltet.
Jeder sollte sich der Mängel der automatischen Hochberechnung des Systems bewusst sein, wie zum Beispiel: kein Caching, wiederholte Berechnungen, Schnittstellensprünge, und da es in Zellen mit komplexem Layout scrollt und berechnet, gibt es einige Probleme. Es unterstützt nur iOS8+. und das Layout muss die gesamte Zelle ausfüllen. In einigen Szenarien muss eine Priorität festgelegt werden, andernfalls werden Einschränkungskonflikte gemeldet.
UITableView-FDTemplateLayoutCell Ich habe zu Beginn auch das API-Design verwendet. Vielen Dank dafür, aber es gibt einige Fehler, die nicht behoben wurden Füllen Sie die gesamte Zelle aus. Einige Szenen müssen während des Layouts Prioritäten festlegen, da sonst Einschränkungskonflikte gemeldet werden. Daher wurden sie nach UITableViewDynamicLayoutCacheHeight migriert.
Die Mängel von UITableViewDynamicLayoutCacheHeight sind:
Basierend auf diesem Framework wurde vor ein paar Jahren eine einfache WeChat Moments-Funktion geschrieben. Wenn Sie interessiert sind, können Sie einen Blick darauf werfen.
UITableViewDynamicLayoutCacheHeight wird unter der MIT-Lizenz veröffentlicht. Weitere Informationen finden Sie unter LIZENZ.