UITableViewCell分配的issue-cell不是nil[英] UITableViewCell allocation issue - cell is not nil

本文是小编为大家收集整理的关于UITableViewCell分配的issue-cell不是nil的处理方法,想解了UITableViewCell分配的issue-cell不是nil的问题怎么解决?UITableViewCell分配的issue-cell不是nil问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell2";
    UILabel *titleLabel;
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(5, 5, 300, 20)];
        [cell.contentView addSubview:titleLabel];
        titleLabel.tag = 0011;
    }
    else 
    {
        titleLabel = (UILabel *)[cell.contentView viewWithTag:0011];
    }

    // Configure the cell...
    NSMutableString *title = [NSMutableString stringWithString:@"Customer: "];
    [title appendString:[titles objectAtIndex:indexPath.row]];
    titleLabel.text = title.copy;
    titleLabel.backgroundColor = [UIColor clearColor];
    titleLabel.textAlignment = UITextAlignmentLeft;
    titleLabel.font = [UIFont systemFontOfSize:18.0];

我的单元格永远不会为零,而我的 titleLabel,因为它从未被分配,尽管我的单元格已生成.我看不出这是怎么可能的.if 状态永远不会为真,这应该是第一次生成的单元格,但我的单元格是按原样创建的,没有我的 titleLabel

推荐答案

听起来好像您使用的是 iOS 5(或更高版本)和 Storyboards.

在 iOS 5(或更高版本)下,如果您使用 Storyboards 和 TableView Controller,dequeueReusableCellWithIdentifier: 方法保证返回一个单元格(前提是您已经在 Storyboard 中定义了具有给定标识符的单元格).

如果是这种情况,解决方案是在情节提要中完全创建自定义表格单元格.转到 Storyboard 中的 Table View,选择 Content:Dynamic Prototypes 并制作 Prototype Cells:1.现在以图形方式布局您的单元格,使其完全符合您的要求.现在单击单元格并设置 Identifier:Cell2.您现在不需要在运行时创建标签或检查它是否为 nil.完整的详细信息,包括如何引用您设置的标签,请参阅 iOS 5 发行说明(下面的链接)或网络上的许多教程.

请参阅 iOS 5 发行说明部分配置表观看次数

本文地址:https://www.itbaoku.cn/post/924409.html