链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

UITableViewDynamicLayoutCacheHeight-自动计算视图高度

UITableViewDynamicLayoutCacheHeight是一个高性能的工具,它能自动计算采用Autolayout布局的UITableViewCell和UITableViewHeaderFooterView的高度并自动管理高度缓存。支持横竖屏且兼容Swift,有多种安...

访问官网 →

UITableViewDynamicLayoutCacheHeight-自动计算UITableViewCell和UITableViewHeaderFooterView高度

项目简介

UITableViewDynamicLayoutCacheHeight是一个便捷且高性能的工具,它能够自动计算采用Autolayout布局(包括Xib、StoryBoard、Masonry、SnapKit、SDAutoLayout等)的UITableViewCell和UITableViewHeaderFooterView的高度,支持横竖屏并且内部自动管理高度缓存,还兼容Swift。

安装方式

使用CocoaPods

可以使用pod ‘UITableViewDynamicLayoutCacheHeight’然后执行pod install,并且通过#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>引入。如果只想使用免注册获取Cell和UITableViewHeaderFooterView可使用pod ‘UITableViewDynamicLayoutCacheHeight/Category’。

使用Carthage

Carthage是一个去中心化的依赖管理器。要集成UITableViewDynamicLayoutCacheHeight,在Cartfile中添加.github “liangdahong/UITableViewDynamicLayoutCacheHeight” ~> 5.2.0。也可以手动下载项目(clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git),然后将UITableViewDynamicLayoutCacheHeight文件夹下的全部内容拖拽到项目中。

框架实现原理

高度计算原理为提前创建Cell,填充内容后强制布局,获取Cell中MaxY最大的View,取此View的MaxY为Cell所需高度(所以保证Cell中的View的MaxY最大的值至关重要),内部会自动管理缓存的保存和清空操作。

项目总结

这个项目在自动计算高度方面有着自己的优势,但也存在如可能会多加一个View、配置Cell的代码要在2个地方写等缺陷。基于此框架还实现了一个简陋的微信朋友圈功能。欢迎大家针对这个项目提出issues和PR,也可以添加微信进交流群。期待大家在留言区参与对该项目的讨论。

项目地址

GitHub链接直达