zoukankan      html  css  js  c++  java
  • Cell的重用机制

     static NSString *resuseId=@"cell";
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:resuseId];
        if (!cell)
        {
            cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:resuseId];
        }
         当tableView初次加载时,系统会每次进入到cellforRow方法。并且会优先向重用队列中取Cell。如果存在resuseId=@"cell"的Cell时,系统就不会再开辟空间创建Cell了。由于是首次加载,肯定不存在Cell,所以系统会开辟空间创建10个Cell(假如一个屏幕正好可以看见10个Cell)。那么当用户向上滑动时,最上方的Cell还没有划出(滑出的话,系统不会销毁Cell 而是根据resuseId将其放入重用队列),但是新的Cell已经需要被显示了,所以新的Cell在重用队列中找不到可重用的Cell,只能再次创建。如果用户继续向上滑动,第一个Cell滚粗屏幕并加入重用队列,新进来的Cell 完全显示。当继续滚动时,下一个Cell也要进来了,但是此时重用队列中已经有可从用的Cell了,所以这个Cell不需要再开辟空间了,只需要将可从用Cell取出来,修改显示内容即可。
    
    
  • 相关阅读:
    Numpy基础学习笔记3
    Numpy基础学习笔记2
    Halcon学习笔记——机器视觉应用工程开发思路及相机标定
    WPF的依赖项属性
    如何理解委托与事件
    LINQ和.NET数据访问
    PLC通信网络
    运动控制基础
    PLC总结
    C#使用第三方组件Epplus操作Excel表
  • 原文地址:https://www.cnblogs.com/dengzhuli/p/4415561.html
Copyright © 2011-2022 走看看