zoukankan      html  css  js  c++  java
  • (二十九)动态单元格

    动态单元格可以绑定一个Cell控制器,优点是可以任意定义Cell的样式,然后在控制器里设置Cell的内容,例如布置为下图的样式:


    从storyboard绑定标识的方法:设置Identifier后,即可通过出队方法获取这个Cell。


    获取这个Cell的方法:这样是自动进行缓存池优化的,缓存池中没有,直接从storyboard中的模板创建。

    AppCell *cell = [tableView dequeueReusableCellWithIdentifier:@"app"];

    这是模拟的一个应用管理App,在表格的每一行显示一个App的信息和下载按钮,为了获取Cell信息,应该建立一个模型,Cell设置数据的时机是Cell出队之后,返回之前,在这里对Cell传递模型数据,因此只要重写Cell的set方法传入模型即可。

    因为Cell有控制器,因此可以通过拖线的方式绑定控件,然后进行相应的设置(注意控件的名称不要和Cell自带的控件重名,例如imageView本来就有,注意避免重名)。

    一个技巧:如果要实现不同的行Cell的多样化,可以让indexPath不同时出队的Cell的ID不同,一定要选择动态单元格。

    为了实现主控制器对按钮的监听,需要主控制器监听Cell的按钮监听,注意代理方法要传入被代理的对象,这是规范。


    循环利用带来的困扰:下载键点击后显示的为已下载,但是上下拖动tableView时,循环利用已有的Cell时因为信息覆盖的不够可能会还保持已下载。

    因此,使用循环利用一定要覆盖全部状态

  • 相关阅读:
    Docker 镜像
    为什么要用 Docker
    什么是 Docker
    python编码
    Python File(文件) 方法
    Python 日期和时间
    Python 字符串字典内置函数&方法
    Python 元组内置函数
    Epos消费管理系统使用发布订阅实现数据库SQL SERVER 2005同步复制
    Epos消费管理系统复制迁移SQL SERVER 2005数据库
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154224.html
Copyright © 2011-2022 走看看