zoukankan      html  css  js  c++  java
  • cell的复用

    小细节:

      1. All the cells that are visible in the Table have its one UITableViewCell.
        2. The UITableView only put cells in the reusable queue when they go outside the visual window.
        3. In the first time, all the visible cells in the table are loaded using the Nib file (7,8, 10 times, depending on the height of the cells).
        4. Once you start scrolling the table is when UITableView starts to put UITableViewCells in the reusable queue and can be reused in other positions of the table.

      下面是苹果官方的“UICatalog”中关于cell 使用的代码:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

              UITableViewCell *cell = nil;

              static NSString *kDisplayCell_ID = @"DisplayCellID";

              cell = [self.tableView dequeueReusableCellWithIdentifier:kDisplayCell_ID];

            if (cell == nil)

            {

                 cell = [[[UITableViewCell allocinitWithStyle:UITableViewCellStyleDefaultreuseIdentifier:kDisplayCell_ID] autorelease];

                 cell.selectionStyle = UITableViewCellSelectionStyleNone;

            }

           else

           {

               /** 此时,该CELL被复用,则清除这个CELL上之前添加的控件 */

                // the cell is being recycled, remove old embedded controls

                UIView *viewToRemove = nil;

                 viewToRemove = [cell.contentView viewWithTag:kViewTag];

                 if (viewToRemove)

                        [viewToRemove removeFromSuperview];

            }

     

     

           cell.textLabel.text = [[self.dataSourceArray objectAtIndex: indexPath.sectionvalueForKey:kLabelKey];

     

           UIButton *button = [[self.dataSourceArray objectAtIndex: indexPath.sectionvalueForKey:kViewKey];

           [cell.contentView addSubview:button];

     

           return cell;

  • 相关阅读:
    Win10桌面点右键一直卡顿转圈怎么解决
    Ubuntu 中检查笔记本 CPU 的温度
    aria2的安装与配置
    Downloading Vim
    如何在Ubuntu 18.04上安装Python 3.8
    理解 chroot
    Ubuntu快捷方式存放的位置
    安装ubuntu双系统后,找不到windows启动项的解决方法
    socks5 协议简介
    mybatis源码1.3 MapperMethod
  • 原文地址:https://www.cnblogs.com/Cristen/p/2784111.html
Copyright © 2011-2022 走看看