zoukankan      html  css  js  c++  java
  • cell的工厂模式

      ***cell有表视图和集合视图的cell两种,工厂模式的实现方式大致相同。

    1.首先介绍表视图的cell工厂

    1):首先创建继承自UITableViewCell的cell基础类BaseTableViewCell,在工程中使用自定义的cell都继承自这个类(如果需要一个控制器控制两个以上!不同的!的cell的话,那么第二个cell就需要用代码写了)。

    2):在基础cell类中声明一个设置数据的方法 ,并空实现

    - (void)setDataWithModel:(BaseModel *)model;

    3):创建cell工厂类FactoryTableViewCell,并定义一个根据模型创建cell的方法

    + (BaseTableViewCell *)createTableViewCellWithModel:(BaseModel *)model tableView:(UITableView *)tableView indexPath:(NSIndexPath *)indexPath 

    {

      //1.获取cell的名字

      NSString *name = NSStringFromClass([model class]);

       //2.创建cell

      BaseTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:name forIndexPath:indexPath];

     

    }

    4):工厂的使用

      ①:注册cell

        [self.myTableView registerNib:[UINib nibWithNibName:@"ReadDetailCell" bundle:nil] forCellReuseIdentifier:NSStringFromClass([ReadDetailListModel class])];

      ②:在重用cell的方法中调用工厂中的方法

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

    {

        //1.获取模型

        BaseModel *model = self.alllistArray[indexPath.row];

        BaseTableViewCell *cell = [FactoryTableViewCell createTableViewCellWithModel:model tableView:tableView indexPath:indexPath];

        [cell setDataWithModel:model];

      return cell;

    }

     

     

     

     

     

     

  • 相关阅读:
    [转] When to use what language and why
    C++常用的函数,好的博客文章整理,集锦
    生活2013
    转-什么样的公司才是好公司?好公司的六大特征
    Linux上去掉ps grep自身查询
    Centos 上搭建FTP服务
    IOS上VOIP PUSH Notification功能
    Linux下常用命令集合
    NodeJS React 开发环境搭建
    MongoDB 命令行导入导出JSON文件
  • 原文地址:https://www.cnblogs.com/arenouba/p/5353429.html
Copyright © 2011-2022 走看看