zoukankan      html  css  js  c++  java
  • UITableView学习之辨析两个方法:⓵dequeueReusableCellWithIdentifier与⓶dequeueReusableCellWithIdentifier:forIndexPath:

    使用storyboard显示UITableView时,
    如果不修改系统默认生成的
    tableView:cellForRowAtIndexPath:方法中的代码,
    必须为UITableViewCell注册(填写)重用标识符:identifier.
    必须要代码方法中的标识符一致.
    然后,就可以省略代码设置标识符的方法:
    (也就是那三行if语句)
    如下所示:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    static NSString *CellIdentifier = @"myCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    // if (nil == cell) {
    // cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    // }
    //...
    return cell;
    }

    使用Storyboard建立的UITabeViewController,如果其中的Cell是已经注册过的//    static NSString *ID = @"Cell";    永远都会找到一个单元格,如果缓冲池中没有,会自动新建       dequeueReusableCellWithIdentifier 直接查询可重用单元格     dequeueReusableCellWithIdentifier:forIndexPath: 查询“注册的”可重用单元格,此方法中indexPath本身没有用处             强制判断是否注册了单元格          如果已经注册过单元格,以上两个方法等效。          如果在StoryBoard中指定了单元格的可重用标示符,单元格的优化将有系统接管,不再需要判断cell == nil    
    注释:注册Cell有两种方式:⓵图形界面,直接在storyboard的属性栏中代码⓶代码,代码使用一个以regist开头的注册方法.
    实例化UITableViewCell有两种组合方案:㊀未注册+if+ dequeueReusableCellWithIdentifier:㊁注册+ dequeueReusableCellWithIdentifier:forIndexPath:㊂注册+ dequeueReusableCellWithIdentifier:
    ㊀中注意点:何为未注册?(何时必须写if语句?)#解答#两种情况>1如果在storyboard中创建了UITableView但并没有拖拽UITableViewCell(则必须写if)>2未使用storyboard
    (xib同理)


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3489938.html
Copyright © 2011-2022 走看看