UITableViewCell
dan UITableViewHeaderFooterView
menggunakan tata letak Autolayout
[ Xib
, StoryBoard
, Masonry
, SnapKit
, SDAutoLayout
...], mendukung layar horizontal dan vertikal, secara otomatis mengelola cache ketinggian secara internal, dan kompatibel dengan Swift. pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage adalah manajer ketergantungan terdesentralisasi yang membangun ketergantungan Anda dan memberi Anda kerangka kerja biner. Untuk mengintegrasikan UITableViewDynamicLayoutCacheHeight, tambahkan yang berikut ke Cartfile Anda.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
]UITableViewDynamicLayoutCacheHeight
ke dalam proyek Anda. Cell
dibangun menggunakan Xib
"Ini juga mendukung tata letak kode murni, selama Autolayout digunakan."- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
. UITableView
Anda telah自动算高
dan自动缓存高度
. Demo Swift Xib
Demo tata letak kode murni Swift
Untuk penggunaan lebih lanjut, silakan merujuk ke API file UITableView+BMDynamicLayout.h.
Buat Sel terlebih dahulu, lalu isi konten, lalu paksa tata letak, lalu dapatkan Tampilan dengan MaxY terbesar di dalam Sel, lalu ambil MaxY Tampilan ini menjadi ketinggian yang dibutuhkan oleh Sel [jadi保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
Krusial], operasi penyimpanan dan pembersihan cache secara otomatis dikelola secara internal.
Setiap orang harus menyadari kekurangan penghitungan tinggi otomatis sistem, seperti: tidak ada cache, penghitungan berulang, lompatan antarmuka, dan karena menggulir dan menghitung dalam sel dengan tata letak yang rumit, ada beberapa masalah. dan tata letak harus memenuhi seluruh Sel. Dalam tata letak Dalam beberapa skenario, prioritas perlu ditetapkan, jika tidak, konflik batasan akan dilaporkan.
UITableView-FDTemplateLayoutCell Saya menggunakan kerangka ini di awal. Pada saat yang sama, desain API juga didasarkan pada FDTemplateLayoutCell. Saya juga menggunakan beberapa materi mengisi seluruh Sel. Beberapa adegan perlu menetapkan prioritas selama tata letak, jika tidak, konflik batasan akan dilaporkan, sehingga adegan tersebut dimigrasikan ke UITableViewDynamicLayoutCacheHeight.
Cacat UITableViewDynamicLayoutCacheHeight adalah:
Berdasarkan kerangka ini, fungsi WeChat Moments sederhana telah diterapkan. Kode WeChat Moments ditulis dengan santai beberapa tahun yang lalu? Saya belum siap untuk menyesuaikannya.
UITableViewDynamicLayoutCacheHeight dirilis di bawah lisensi MIT. Lihat LISENSI untuk detailnya.