内容简介:首先上图下面来分析一下tableView的层级结构tableView的组成:
首先上图
下面来分析一下tableView的层级结构
tableView的组成:
1.整个tableView有且仅有一个头部和尾部就是tableViewHeadView和tableViewFooterView 2.tableView 可以有多个section,一个section有且仅有一个sectionHead 和sectionFooter 但是可以有多cell 复制代码
在很多情况下有很多人会忘记tableView的section和head,比如在写一些多级列表的时候,其中有一种解决方法就是处理数据源,来根据模型判断应该展示的cell的样式,但是这种要处理数据源,而且结构相对来说也不够清晰,感觉不够好,下面来举例说明一下
以微信朋友圈为例(微信不一定是按照这种思路实现,没有逆向去了解过。)但是可以用这种思路去解决这种布局的问题
- 首先上面的背景和头像那个可以放在tableViewHeadView
- 接下来就是个人发的动态消息这个可以放在tableViewSectionHead里面
- 就是下面的评论了,可以用tableViewCell来写。
用以上这种方法布局之后感觉思路就比较清晰了
上面还提到了一种思路这边简单介绍一下,就是根据数据模型来判断,大概就是上面的动态消息那块用一个数据模型,再下面的评论用一个数据模型,前期数据请求下来之后将数据整理好之后存放到数据中,再展示的时候更具数据模型来判断用哪个cell加载,但是这种方式仅供参考,不提倡使用这种方式,有点类似于曲线救国的方式, 但是如果列表的层级再深一层的话可以考虑用这种方式或者嵌套的方式 。
特别说明一下
collectionView没有tableView类似tableViewHeadView和tableViewFooterView的整体头部和尾部,在做其他的样式UI的时候需要注意一些
但是用其他的方法还是可以实现类似collectionViewHeadView 和FooterView就是设置collectionView的UIEdgeInsetsMake值,这样可以实现,但是这样的话有个问题,就是加入刷新组件的时候会发现刷新组件偏移了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 小程序无限层级路由方案
- 层级时间轮的 Golang 实现
- Flutter之Widget层级介绍
- 骨骼数目和骨骼层级数目的美术规范
- 三层级物联网技术支撑 高效停车近在咫尺
- Java性能调优,你需要跨越的5个层级
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。