iOS TableView层级结构剖析

首先上图微信

下面来分析一下tableView的层级结构布局

tableView的组成:code

1.整个tableView有且仅有一个头部和尾部就是tableViewHeadView和tableViewFooterView
2.tableView 能够有多个section,一个section有且仅有一个sectionHead 和sectionFooter 可是能够有多cell

在不少状况下有不少人会忘记tableView的section和head,好比在写一些多级列表的时候,其中有一种解决方法就是处理数据源,来根据模型判断应该展现的cell的样式,可是这种要处理数据源,并且结构相对来讲也不够清晰,感受不够好,下面来举例说明一下blog

以微信朋友圈为例(微信不必定是按照这种思路实现,没有逆向去了解过。)可是能够用这种思路去解决这种布局的问题

  1. 首先上面的背景和头像那个能够放在tableViewHeadView
  2. 接下来就是我的发的动态消息这个能够放在tableViewSectionHead里面
  3. 就是下面的评论了,能够用tableViewCell来写。

用以上这种方法布局以后感受思路就比较清晰了io

上面还提到了一种思路这边简单介绍一下,就是根据数据模型来判断,大概就是上面的动态消息那块用一个数据模型,再下面的评论用一个数据模型,前期数据请求下来以后将数据整理好以后存放到数据中,再展现的时候更具数据模型来判断用哪一个cell加载,可是这种方式仅供参考,不提倡使用这种方式,有点相似于曲线救国的方式,可是若是列表的层级再深一层的话能够考虑用这种方式或者嵌套的方式table

特别说明一下请求

collectionView没有tableView相似tableViewHeadView和tableViewFooterView的总体头部和尾部,在作其余的样式UI的时候须要注意一些方法

可是用其余的方法仍是能够实现相似collectionViewHeadView 和FooterView就是设置collectionView的UIEdgeInsetsMake值,这样能够实现,可是这样的话有个问题,就是加入刷新组件的时候会发现刷新组件偏移了。im

相关文章
相关标签/搜索