IOS - 如何从XIB创建高度自适应的TableviewHeader

本文旨在解决以下问题

1.需要从XIB创建TableViewHeader
2.需要Tableview高度自适应

首先要绘制好XIB视图,将xib元素中,高度不固定的视图高度约束去掉,例子:


示例

上图中的WebView是高度变化元素,将其设置好和父视图的上下左右的约束,去掉高度约束,去掉父视图的高度约束。(UILabel等除非是高度自适应,全部应当设置为固定高度)。

然后,要在VC中处理该视图,因为TableView的特殊性,在设置完TableViewheader之后,高度便固定,即便更新了约束,一方面会报错,说明各元素高度之间冲突,第二方面,会出现超长和Cell元素混合在一起,所以我另辟蹊径,首先将HeaderView 初始化添加到self.view,设置好上下左右和高度的约束。然后在HeaderView中更新Webview的高度并回调给VC,高度刷新成功后,再将HeaderView移除self.view,并设置到tableview,此时高度已经处理完毕。


image.png
图片

然后切记要在WebView所在的控制器监听代理,在webViewDidFinishLoad、webViewDidStartLoad、didFailLoadWithError方法中回调该block

image.png

另外要说一点的就是,我这种做法是不完美的,在加载完成webview之前,页面都不可操作滑动,可优化空间很大,欢迎大家沟通交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,797评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 偶然和儿子一起翻看去年的照片和视频,那时候儿子还处在牙牙学语的阶段,脸还是圆嘟嘟的。儿子看着照片里的我抱着一个小宝...
    芥末0331阅读 1,306评论 1 1
  • 新浪书简阅读 412评论 0 0
  • 为主耶稣存款-下午带着以勒弟弟去接大卫放学,大卫从学校出来兴高采烈地拿着老师送的做手工的一包小零件,在车上时就迫不...
    Carrie宣婷阅读 1,163评论 1 1