文档章节

iOS TableView层级结构剖析

HOrange
 HOrange
发布于 05/26 19:43
字数 631
阅读 11
收藏 0

首先上图

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

tableView的组成:

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

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

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

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

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

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

特别说明一下

collectionView没有tableView类似tableViewHeadView和tableViewFooterView的整体头部和尾部,在做其他的样式UI的时候需要注意一些

但是用其他的方法还是可以实现类似collectionViewHeadView 和FooterView就是设置collectionView的UIEdgeInsetsMake值,这样可以实现,但是这样的话有个问题,就是加入刷新组件的时候会发现刷新组件偏移了。

© 著作权归作者所有

HOrange
粉丝 0
博文 29
码字总数 9128
作品 0
深圳
程序员
私信 提问
iOS 11 安全区域适配总结

导语:本文主要是对iOS 11下APP中内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、属性的计算方式、什么情况下的会发生内容下移、有哪些解决方法、解决这个...

Daniel_s
2017/11/03
0
0
iOS11 UITableView reloadData 界面跳动问题

在 iOS11.的系统上当 UITableView 设置高度固定 rowHeight = xxx; 时,如果tableView滚动到最底部,此时如果刷新tableView会出现tableView向上方跳动一段距离的现象 。 既然只是在iOS 11系统...

zh_iOS
2018/09/03
0
0
iphone开发资源汇总

iphone开发资源汇总 如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://github.com/carlbrown/PDKeychainBindingsContr......

长平狐
2012/10/25
232
0
iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App(http://www.code4app.com/thread-14774-1-1.html) 3D立体相册,可以旋转的立方体(http://www.code4app.com/thread-14966-1-1.html) 横竖屏切换...

Android爱开源
2018/10/17
0
0
IOS 不能触发didSelectRowAtIndexPath事件

IOS 不能触发didSelectRowAtIndexPath事件. delegate 没有设置。 可能tableview被其他控件覆盖。 手势与tableview点击事件冲突,有些IOS版本只能触发手势,有些需要长按才能触发didSelectRo...

LoveCupid
2014/02/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在优麒麟中运行英雄联盟LOL

sudo apt install wine-stable sudo add-apt-repository ppa:lutris-team/lutris sudo apt install lutris 在lutris官网的game分类里找到英雄联盟这个游戏,然后进去那个页面, https://lutr......

gugudu
28分钟前
5
0
Mysql主从

一、mysql主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的,MySQL主从基于binlog,主上须开启b...

wxy丶
32分钟前
6
0
商品SKU规格算法

思想 定义规格属性数据格式 定义生成SKU数据格式 完成点击多选框后生成的数据源 根据数据源生成SKU数据 根据生成的SKU数据做展示 代码示例 <!DOCTYPE html><html><head> <!-- 页面met...

chinahufei
40分钟前
1
0
面试点:Java 中 hashCode() 和 equals() 的关系

Java 中 hashCode() 和 equals() 的关系是面试中的常考点,如果没有深入思考过两者设计的初衷,这个问题将很难回答。除了应付面试,理解二者的关系更有助于我们写出高质量且准确的代码。 一....

爱码仕i
42分钟前
5
0
传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式

讲解JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码。 1.从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据Java的垃圾回...

shzwork
53分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部