zoukankan      html  css  js  c++  java
  • UITableViewCell在非Nib及Cell重用下设置CellStyle

    在UITableViewController(实现了UITableViewDataSource)下需要实现

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

    此接口就是使用数据初始化一个Cell视图并返回,我们可以每次创建一个新Cell,然后返回

    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

    这样我们可以在创建Cell对象的时候设置它的Style。

    而如果是Cell重用的时候,我们只能从tableView的cell池中获取一个Cell对象

    - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;

    这样得到的cell,是使用默认初始化方法和参数创建的,创建的过程有tableView负责,对我们透明。

    而cell对象又没有设置style的明确接口,因为又不是在nib环境下,也不能通过IB来设置。

    最终的解决方法是,得到的cell对象再次调用初始化方法initWithStyle,即

    cell = [cell initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"];

     

    总结:初始化方法并不总是跟alloc配套使用,不要形成这样的固定思维。alloc分配了内存后,可以调用多次初始化方法,就像随便改变一个对象的属性值一样。

  • 相关阅读:
    Spark高级数据分析· 2数据分析
    rtsp 学习
    vs code 体验
    RTP 学习
    libev 学习使用
    TS 数据流分析学习
    linux 编程
    times、 time、clock函数说明
    gcc 学习
    2010912 双模机顶盒学习记录
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4444290.html
Copyright © 2011-2022 走看看