美文网首页
tableView.contentOffset.y

tableView.contentOffset.y

作者: 淇滨杜隆坦 | 来源:发表于2016-06-24 08:58 被阅读1016次
    tableView.contentOffset.y.gif
    这里只是介绍一下表面看到的:
    • tableView 上滑的时候,其实是 tableView 的内容框上移(tableView控件本身并没动),即 tableView 的参考零点上移了,所以 tableView 相对于参考零点就在下面,所以其contentOffset.y是正值
    • tableView 下滑的时候,其实是 tableView 的内容框下移(tableView控件本身并没动),即 tableView 的参考零点下移了,所以 tableView 相对于参考零点就在上面,其contentOffset.y是负值
    • 大家都知道,现实生活中,即便你原地不动,但是给你变换参考坐标,你的位置值就是变化的,所以你的参考原点变化了,你的位置值就变化了(位置不变,位置值变化)
    • tableView 的内容框在上下滚动的时候,其实就是 tableView 的参考原点在上下变化
    • 上滑的时候,参考原点跑到了 tableView.frame.origin.y = 0 的上方,那么tableView.frame.origin.y = 0 就相当于跑到了参考原点的下面,所以 tableView.contentOffset.y 就是正的
    • 下滑的时候,参考原点跑到了 tableView.frame.origin.y = 0 的下方,那么tableView.frame.origin.y = 0 就相当于跑到了参考原点的上面,所以 tableView.contentOffset.y 就是负的

    我们再换一幅图,通过这幅图我们可以这么认为:
    其实tableView.contentOffset.y就是一条横线
    那么你会问是哪条横线呢?
    其实就是 tableView.frame.origin.y 代表的这一条横线

    11111111.png

    对此,你可能会有疑问,这还要结合最上面的那幅图来解释:
    你看,其实tableView.contentOffset.y就是一条横线,就是tableView.frame.origin.y 代表的这一条横线
    在目前的例子里,代表的就是导航栏下面的那一条线
    你的疑问:tableView.contentOffset.y随着 tableView 滑动不是一直在变化的吗?
    是的,的确是的·
    它的值的确是在变化的,但是是相对的,相对于内容框的位置的实时值
    tableView.contentOffset.y代表的这条线的位置其实并没有变
    正是因为 tableView 滑动了,我相对于 tableView 内的内容框的位置变化了,但是其实际位置没有变化

    记住一句话,tableView 这个控件的位置和尺寸是固定死的,永远不会变化
    既然 tableView 是固定死的,tableView 为什么会有 contentOffSet 呢
    这可以用生活中的例子来解释:计算我相对于你的偏移位置
    我在家里,坐在沙发上始终不动
    你在我家里来回走动,我相对于你的偏移量就会发生变化
    我.contentOffSet就会变化
    我始终没动,但因为你的走动,导致我的contentOffSet就发生了变化

    所以,tableView.contentOffset.y始终就仅仅是tableView.frame.origin.y 代表的这一条横线
    就是 tableView 纵向 起始的那条横线
    tableView 纵向上从哪里开始的,那个地方的横线就是tableView.contentOffset.y = 0 的横线
    也就是tableView.contentOffset.y代表的横线,这条横线横亘在这里
    当 tableView 的内容滑动了,tableView.contentOffset.y的值就会变化

    相关文章

      网友评论

          本文标题:tableView.contentOffset.y

          本文链接:https://www.haomeiwen.com/subject/hasodttx.html