UITableViewCell
y UITableViewHeaderFooterView
utilizando el diseño Autolayout
[ Xib
, StoryBoard
, Masonry
, SnapKit
, SDAutoLayout
...], admite pantallas horizontales y verticales, administra automáticamente el caché de altura internamente y es Compatible con Swift. pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage es un administrador de dependencias descentralizado que crea sus dependencias y le proporciona marcos binarios. Para integrar UITableViewDynamicLayoutCacheHeight, agregue lo siguiente a su Cartfile.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
]UITableViewDynamicLayoutCacheHeight
en su proyecto. Cell
está creado con Xib
. "También admite el diseño de código puro, siempre que se utilice el diseño automático ".- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
. UITableView
ha自动算高
y自动缓存高度
. El efecto es el siguiente: Demostración de Swift Xib
Demostración de diseño de código puro Swift
Para obtener más uso, consulte la API del archivo UITableView+BMDynamicLayout.h.
Cree la celda con anticipación, luego complete el contenido, luego fuerce el diseño, luego obtenga la vista con el MaxY más grande en la celda y luego tome el MaxY de esta vista como la altura requerida por la celda [así que保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
Crucial], las operaciones de guardado y borrado de caché se administran automáticamente internamente.
Todos deben ser conscientes de las deficiencias del cálculo alto automático del sistema, como: falta de almacenamiento en caché, cálculos repetidos, saltos de interfaz y, debido a que se desplaza y calcula en celdas con diseños complejos, existen algunos problemas. Solo es compatible con iOS8+. y el diseño debe llenar toda la celda. En algunos escenarios, es necesario establecer la prioridad en el diseño; de lo contrario, se informarán conflictos de restricciones.
UITableView-FDTemplateLayoutCell Utilicé este marco al principio. Al mismo tiempo, el diseño de la API también se basó en FDTemplateLayoutCell. Gracias por esto, pero hay algunos errores que no se han resuelto. llenar toda la celda. Algunas escenas necesitan establecer prioridades durante el diseño; de lo contrario, se informarán conflictos de restricciones, por lo que se migraron a UITableViewDynamicLayoutCacheHeight.
Los defectos de UITableViewDynamicLayoutCacheHeight son:
Basado en este marco, se implementó una función simple de WeChat Moments. El código de WeChat Moments se escribió casualmente hace unos años. No estoy listo para ajustarlo. Si está interesado, puede echar un vistazo.
UITableViewDynamicLayoutCacheHeight se publica bajo la licencia MIT. Consulte LICENCIA para obtener más detalles.