美文网首页
UITableViewCell 无法显示detailTextLa

UITableViewCell 无法显示detailTextLa

作者: 哥只是个菜鸟 | 来源:发表于2020-07-11 14:47 被阅读0次

    -第一种注册cell的方式不会显示detailTextLable,因为cell不会为空,不进cell判断,UITableViewCellStyleValue1不会生效

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        [self.view addSubview:self.tableView];
        [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
        
    }
    -(UITableViewCell *)tableView:(UITableView *)tableView
            cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
        if(!cell){
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
        }
        cell.detailTextLabel.text = @"haha";
        return cell;
    }
    
    • 不注册cell才会显示detailTextLable
    -(UITableViewCell *)tableView:(UITableView *)tableView
            cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        if(!cell){
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
        }
        cell.textLabel.text = @"yese";
        cell.detailTextLabel.text = @"haha";
        return cell;
    }
    
    

    1、dequeueReuseableCellWithIdentifier:与dequeueReuseableCellWithIdentifier:forIndexPath:的区别:

    前者不必向tableView注册cell的Identifier,但需要判断获取的cell是否为nil;

    后者则必须向table注册cell,可省略判断获取的cell是否为空,因为无可复用cell时runtime将使用注册时提供的资源去新建一个cell并返回

    2、自定义cell时,记得将其他内容加到self.contentView 上,而不是直接添加到 cell 本身上

    3.自定义cell时,

    若使用nib,使用 registerNib: 注册,dequeue时会调用 cell 的 -(void)awakeFromNib

    不使用nib,使用 registerClass: 注册, dequeue时会调用 cell 的 - (id)initWithStyle:withReuseableCellIdentifier:

    4.需不需要注册?

    使用dequeueReuseableCellWithIdentifier:可不注册,但是必须对获取回来的cell进行判断是否为空,若空则手动创建新的cell;

    使用dequeueReuseableCellWithIdentifier:forIndexPath:必须注册,但返回的cell可省略空值判断的步骤。

    相关文章

      网友评论

          本文标题:UITableViewCell 无法显示detailTextLa

          本文链接:https://www.haomeiwen.com/subject/iikicktx.html