V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
h386926074
V2EX  ›  iDev

问一个 tableviewcell 的问题

  •  1
     
  •   h386926074 · 2019-02-13 09:01:52 +08:00 · 4531 次点击
    这是一个创建于 1871 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的业务逻辑是 获取 listmodel 后 还需要每个 modeL 根据 id 去走另个一个接口 ,拿到数据然后展示到 cell 上 如果拿到 listmodel 后先刷新 再异步走第二个接口后再刷新界面会跳动,请教各位 这种情况有没有好的办法

    13 条回复    2019-02-15 10:18:05 +08:00
    Damon4V
        1
    Damon4V  
       2019-02-13 09:10:20 +08:00
    可以单个刷新 cell 的。可以去试试
    h386926074
        2
    h386926074  
    OP
       2019-02-13 09:12:12 +08:00
    确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
    h386926074
        3
    h386926074  
    OP
       2019-02-13 09:12:56 +08:00
    @Damon4V 确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
    knightlhs
        4
    knightlhs  
       2019-02-13 09:20:29 +08:00
    多线程,同时获取数据,返回后统一渲染
    uyz
        5
    uyz  
       2019-02-13 09:24:30 +08:00
    要不试一下缓存,缓存当前屏、上 /下一屏的数据,这样就只有一次刷新了;缓存机制实现起来麻烦些
    h386926074
        6
    h386926074  
    OP
       2019-02-13 09:26:43 +08:00
    @knightlhs 这种网络环境不确定 可能会导致获取数据时间很长吧 10 条数据 就需要走 11 个网络接口
    laobaozi
        7
    laobaozi  
       2019-02-13 09:32:45 +08:00
    只要 cell 的高度变化,reload 界面就会跳动

    如果能改造接口,就把第二个接口返回的数据合并到第一个接口中
    否则
    简单粗暴的搞法就是在 listmodel 返回后,再马上请求所有 cell 需要的第二份数据并缓存, 只有在两个接口都返回后再刷新 tableView
    weirdyu
        8
    weirdyu  
       2019-02-13 09:42:45 +08:00
    接口设计不合理,第二个传一组 id 也比你这样一个个请求强啊
    90928yao
        9
    90928yao  
       2019-02-13 09:54:14 +08:00
    这接口是不是有点问题。你 cell 要是很多 难道请求一直发吗。。。
    h386926074
        10
    h386926074  
    OP
       2019-02-13 15:42:20 +08:00
    @90928yao 这接口的确很坑啊 本来是一次请求 ,并在一块的 ,但服务器这个接口查询时上也先查两个地方,导致客户端拉接口很慢,才分开,等于把坑甩到客户端处理了
    misaka20
        11
    misaka20  
       2019-02-13 17:49:10 +08:00
    这种客户端不需要解决,就是强制让接口端解决
    shzcaptain
        12
    shzcaptain  
       2019-02-13 18:29:40 +08:00
    当然是服务端组装好数据给客户端渲染了,一个页面多次渲染不仅是跳的问题,性能也会有很大的问题。
    h386926074
        13
    h386926074  
    OP
       2019-02-15 10:18:05 +08:00
    @shzcaptain @misaka20 这个问题 只能留给 接口解决了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3220 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:52 · PVG 18:52 · LAX 03:52 · JFK 06:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.