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时因为信息覆盖的不够可能会还保持已下载。

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

  • 相关阅读:
    [源码]一个简单的源代码行数统计器
    [转载]一个java程序员的面试
    [源码]用c#创建支持多语言的应用程序
    Effective C#
    [源码]类似于 word 的颜色选择器 ColorPicker
    opera中开启WebGL
    Java学习之路
    邮箱正则表达式写法
    AX 2009 扩展类型控件的Lookup的写法
    唐骏的管理名言
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154224.html
Copyright © 2011-2022 走看看