V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iamjjh
V2EX  ›  程序员

请问写一个微博的 cell 用 autolayout 好实现吗

  •  
  •   iamjjh · 2015-09-08 11:38:58 +08:00 · 2955 次点击
    这是一个创建于 3370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微博的 cell 用代码写很复杂的样子,用 autolayout 是否会简单点?目前尝试了下,但是放置图片的 view 因为图片数量不同,高度不太好确定,请问谁有 demo 吗?想研究下,谢谢。

    9 条回复    2015-09-09 12:01:20 +08:00
    codeface
        1
    codeface  
       2015-09-08 12:18:57 +08:00
    masonay 爽得飞起,用过之后再也不想 setFrame 了。
    CDuXZMAPgHp1q9ew
        2
    CDuXZMAPgHp1q9ew  
       2015-09-08 12:39:57 +08:00
    微博的 cell 种类有多
    a 你可以把不同布局的 cell 分成各类
    b 或者一种 cell 各个 view 按需显示
    各种子 view 在一个 view 里按需显示本来就很复杂
    -> 上了 autolayout 就更复杂了
    -> cell 还涉及到重用机制 也就说 a cell 这个子 view 显示, b cell 这个子 view 隐藏, 涉及到约束的改变

    ab 都不容易 用 autolayout 坑很多走出来不容易 如果你对 autolayout 不熟的话
    重写 layoutsubview 其实还好 但是 cell 高度算起来麻烦

    如果你用 autolaoyout
    请一定一定一定仔细研究下面两个 nb 的库或实例
    https://github.com/forkingdog/UIView-FDCollapsibleConstraints
    https://github.com/forkingdog/UITableView-FDTemplateLayoutCell
    hdbean
        3
    hdbean  
       2015-09-08 12:48:39 +08:00
    自定义 cell 啊,什么库都不用
    就用 xib 或者 storyboard,通过 autolayout 布局完全够用
    hdbean
        4
    hdbean  
       2015-09-08 12:50:11 +08:00
    我用 swift 写了一个简易的 weibo,里面的微博首页布局就是 autolayout 自定义的 cell
    https://github.com/Heisenbean/Ybo
    iamjjh
        5
    iamjjh  
    OP
       2015-09-08 13:02:58 +08:00
    @wujichao 多谢知道
    iamjjh
        6
    iamjjh  
    OP
       2015-09-08 13:03:11 +08:00
    @hdbean 学习了
    zioc
        7
    zioc  
       2015-09-08 16:33:54 +08:00
    现在做的一个项目类似微信朋友圈。没有用 autoLayout 去控制高度。

    计算高度放在朋友圈 model 里(包括富文本高度、图片组高度等,富文本高度需要多次用到),在 heightForRowAtIndexPath 返回。
    ibremn
        8
    ibremn  
       2015-09-08 16:51:41 +08:00
    对性能有要求的地方,就不要用 Autolayout !不要用 Autolayout !不要用 Autolayout !
    重要的事情说三遍, Autolayout 的约束数量增加时,其计算量是成指数级增长的。
    http://floriankugler.com/2013/04/22/auto-layout-performance-on-ios/

    如果你希望 TableView 滑动时能保持 60fps ,请把视图宽高的计算、 Cell 高度的计算、富文本排版和渲染、 Model 解析等所有能放到后台线程计算的,统统挪到后台线程去。
    iamjjh
        9
    iamjjh  
    OP
       2015-09-09 12:01:20 +08:00
    @ibremn 多谢提醒
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1279 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:00 · PVG 02:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.