关于tableView中tableHeaderView/tableFooterView/sectionHeader/sectionFooter/contentInset的理解

其实每个人的理解有所不同,找到最有利于自己的理解方式即可。有人把Cell、tableHeaderView、tableFooterView、sectionHeader、sectionFooter这些属性理解为tableVIew的内容,其他都不是,这样理解也可以。其实,在控件的本地坐标系中,内容是没有边界的,但有可视范围,可视范围就是bounds所描述的范围,只要是添加到该控件的东西,都属于其内容。所以下面这种方式如果可以理解的话,相信在使用的过程当中会更简单!

tableView中

1.增加或减少Cell

2.添加tableHeaderView或则tableFooterView

3.添加sectionHeader或则sectionFooter

4.添加子控件

以上四种情况都不会改变tableView内容的原点(默认控件的左上角),也就是bounds.origin。唯有改变contentInset,也就是添加内边距,会改变内容的坐标原点,也就是bounds点(移动了内容所在的本地坐标系)。

原文地址:https://www.cnblogs.com/chao8888/p/5397271.html