美文网首页iOS移动开发iOS学习开发
撩一撩小妖精tableView的进阶属性(六一版)

撩一撩小妖精tableView的进阶属性(六一版)

作者: 奔哥小木屋 | 来源:发表于2016-06-01 21:04 被阅读116次

    (六一福利)

    • 子树: 嘿, tableView, 你这个刺头的小妖精, 接招吧!
    • TabV: 人家哪里刺头啦? 5555, 爹地scrollView才刺头呢
    • 子树: 一个一个来, 今天就你了, 看贱!
    • TabV: 切, 拿错剑啦, 这两下子就想让本小妖臣服? 回家继续撸代码去吧
    • 子树: .....居然被你鄙视了, 看Xcode~

    一 小妖精的部分属性

    本篇以竖直方向为主

    1. 什么是tableView的内容(content)
    • cell
    • tableHeaderView/tableFooterView
    • sectionHeader/sectionFooter

    TabV: 这些才是俺的内容, 别的可不是

    1. contentSize.height : 内容的高度

    2. contentOffset.y : 内容的偏移量(frame的top - content的top)

    3. contentInset : 内容周边的距离(内边距)

    4. Frame 可视范围

    • frame.size.height : 矩形框的高度
    • frame : 以父控件内容的左上角为坐标原点
    1. 以上这些, 看下面的图


      图0
    • TabV: 那些cell应该都在俺身上呢, 你咋画那么远?
    • 子树: 画工不行, 只能犹抱琵琶半遮面了
    • TabV: .....

    二 小妖精的各种常见情景

    1. 没有cell, 没有contentInset, 没有tableHeaderView/tableFooterView,类似:


      图1
    • TabV; 啥? 这情况你都能出现? 我上面的数据呢? 我的内容呢?
    • 子树: 额, 我再去查下源码....
    1. 没有cell, 没有contentInset, 有tableHeaderView/tableFooterView,类似:


      图2
    • TabV; 这次还算不错, 总算把我的内容恰好穿在身上, 但是, 说好的常见的情景呢? 这情景常见?
    • 子树: 额, 只有header和footer, 这不是为了展示一下你的衣(Nei)服(Rong)么?
    1. 有cell, 没有contentInset, 没有tableHeaderView/tableFooterView, 类似图0, 这里就不上图了.
    • 子树: 这应该是最简单最常见情况了吧
    • TabV: Bingo~ 你说的对
    1. 有cell, 有contentInset, 没有tableHeaderView/tableFooterView, 比如:


      图3
    • TabV: 注意哦, top和bottom是contentInset, 是内边距, 是磨人的小妖精, 是魔鬼的步伐
    • 子树: 有内边距后, 可以增加小妖精的滚动范围
    • TabV: 我滚 我上滚 下滚 怎么滚都不一样~~~


      图4
    1. 有cell, 没有contentInset, 有tableHeaderView/tableFooterView, 如


      图5
    • TabV: header和footer可是我的内容哦
    • 子树: 切, 没人跟你抢
    1. 有cell, 有contentInset, 有tableHeaderView/tableFooterView, 如


      图6
    • TabV: 有内边距就我就可以多滚一些啦, 自从有了内边距, 爹地再也不担心可恶的导航条和tabBar挡住人家的内容啦
    • 子树: 你爹地是陈塘关李靖么? 空手接白刃, 出神入化
    • TabV : 不, 人家是tableView, 爹地是scrollView, 人家为自己带盐
    1. 有cell, 没有contentInset, 没有tableHeaderView/tableFooterView, 但是有额外的子控件{0, -44, 375, 44},如


      图7
    • TabV : 那个啥, 那个子控件是通过代码创建, 可不是俺滴内容, 俺不要, 但是在俺的内容top处有了子控件, 俺就可以滚得更远啦;
    • 子树 : 是滑动更远了, 不是滚.....
    • TabV : 都一样都一样
    1. 有cell, 没有contentInset, 有tableHeaderView/tableFooterView, 但是有额外的子控件{0, -44, 375, 44}, 如


      图8
    • TabV : 看好啦, 子控件是会跑到俺的内容外面的, header可是俺滴内容
    • 子树 : 又来, 真没人跟你抢
    1. 有cell, 有contentInset, 有tableHeaderView/tableFooterView, 但是有额外的子控件{0, -44, 375, 44}, 如


      图9
    • TabV : 嘻嘻, 内边距top和子控件可不是俺滴内容, 为了成为俺滴小弟, 居然打(Chong)了(Die)起来;
    • 子树 : 这话叫我咋接
      ...
    • TabV : 你不咋继续了?
    • 子树 : 暂时我就想到这么几种情景;
    • TabV : 切, 才这9种啊? 而且, 居然还不上代码
    • 子树 : 这需要上代码?
    • TabV : 不需要么? 大概是懒在做怪
    • 子树: 需要么? 但是, 但是, 但是, 重要的事说三遍
    • TabV : 重要不是"但是", 是但是后面滴
    • 子树 : 但是大伙以后用到tableView这个小妖精的时候
    • TabV : 遇到问题就多想想我的这几个属性和原理
    • 子树 : 话都被你抢完了, 跟大伙说拜拜啦
    • TabV : 等等, 如果各位大神还发现本小妖的其他的^&#@$?*!&, 反正就是各种啦, 欢迎补充, 另外, 发现或者验证子树的不对的地方, 欢迎下方留言, 嘻嘻, 哈哈哈哈
    • 子树 : 话真的都被你说话了.....
    • TabV : 拜拜, 大伙

    相关文章

      网友评论

      • GL_fire:设置contentInset.top contentOffset.Y 也会有变化的吧
      • 唯子:蛮有趣味的
        奔哥小木屋:@唯子 以后写文章 要多写一些有趣味的 等你生日的时候 再写一篇

      本文标题:撩一撩小妖精tableView的进阶属性(六一版)

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