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 需要的高度
] การดำเนินการบันทึกและการล้างแคชจะได้รับการจัดการภายในโดยอัตโนมัติ
ทุกคนควรตระหนักดีถึงข้อบกพร่องของการคำนวณสูงอัตโนมัติของระบบ เช่น ไม่มีแคช การคำนวณซ้ำ การข้ามอินเทอร์เฟซ และเนื่องจากเป็นการเลื่อนและคำนวณในเซลล์ที่มีเค้าโครงที่ซับซ้อน จึงมีปัญหาบางอย่าง จึงรองรับเฉพาะ iOS8+ เท่านั้น และเค้าโครงจะต้องเติมเต็มทั้งเซลล์ ในบางสถานการณ์ จำเป็นต้องตั้งค่าลำดับความสำคัญ ไม่เช่นนั้นข้อขัดแย้งของข้อจำกัดจะถูกรายงาน
UITableView-FDTemplateLayoutCell ฉันใช้เฟรมเวิร์กนี้ตั้งแต่เริ่มต้น ขณะเดียวกัน การออกแบบ API ก็ใช้ FDTemplateLayoutCell ด้วย เติมทั้งเซลล์ บางฉากจำเป็นต้องกำหนดลำดับความสำคัญระหว่างเค้าโครง ไม่เช่นนั้นข้อขัดแย้งด้านข้อจำกัดจะถูกรายงาน ดังนั้นฉากเหล่านั้นจึงถูกย้ายไปยัง UITableViewDynamicLayoutCacheHeight
ข้อบกพร่องของ UITableViewDynamicLayoutCacheHeight คือ:
จากกรอบการทำงานนี้ มีการนำฟังก์ชัน WeChat Moments ธรรมดามาใช้
UITableViewDynamicLayoutCacheHeight ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ดูใบอนุญาตสำหรับรายละเอียด