0

我有一个通过自定义表格视图单元设计的 UITable 视图。我希望每个单元格上的文本都不同,所以我label在我的 CustomCell 中添加了一个,并将一个连接IBOutlet到它,但是我很难将我的头脑围绕在代码的逻辑部分上。到目前为止我有这个:

// 这是在我的表视图控制器类中。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell == nil) {
        NSArray *object = [[NSBundle mainBundle]loadNibNamed:@"TableOfContentsCell" owner:self options:nil];
        
        for (id currentObject in object) {
            if ([currentObject isKindOfClass:[UITableViewCell class]]) {
                
            cell = (TableOfContentsCell *)currentObject;
            break;
            }
        }
        
    }
    
    //cell.textLabel.textColor = [UIColor whiteColor];
    
    // Configure the cell...
    
    return cell;
}


//This is in my Custom Table View Cell Class.

-(void)setTableText{
cellLabel.text = [table.tableCellText objectAtIndex:0];
}

当我想要的文本位于数组内时,我无法弄清楚如何设置文本!

4

4 回答 4

1

我不清楚您为什么要将数据加载到自定义单元格中的标签,请澄清。
其次,在评论配置单元格下方,您可以自定义您的单元格。正如您设置 textColor 所做的那样。
只需在表视图控制器类中声明该数组

然后编写下面的代码:

    // Configure the cell...
    
    cell.cellLabel.text = [yourArrayName objectAtIndex:indexPath.row];
于 2012-08-14T05:44:21.597 回答
0

只需从 tableView:cellForRowAtIndexPath 填充它

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    // Configure the cell...
    cellLabel.text = [table.tableCellText objectAtIndex:indexPath.row];
    return cell;
}

只需确保 tableview 可以访问 table.tableCellText。

于 2012-08-14T05:08:52.430 回答
0

不需要单独的方法。在您的 qn 代码中,有两行注释...(//配置单元格...)将此代码添加到该部分

假设您的自定义单元格中有两个标签,然后向它们添加标签(此处为 1 和 2)并通过 viewwithtag: 方法在代码中获取其引用

UILabel *label=(UILabel *)[cell viewWithTag:1];
[label setText:@"2"];

UILabel *label2=(UILabel *)[cell viewWithTag:2];
[label2 setText:@"sasd"];

您必须保持的条件是单元格的内容必须被唯一标记,并且使用此方法您可以获得自定义单元格中任何视图的引用。

于 2012-08-14T05:09:35.173 回答
0

根据您的需要创建您的自定义单元格类。然后。

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

 TableCustomCell *cell = (TableCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

//.....................

cell.yourLabel.text = [yourArray objectAtIndex:indexPath.row];

return cell;
}
于 2012-08-14T05:16:47.587 回答