iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)相关的知识,希望对你有一定的参考价值。

这是我的cellForRowAtIndexPath功能。我无法让setText到标签上工作。你能帮帮我吗?

// Customize the appearance of table view cells.

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

    static NSString *CellIdentifier = @"Cell";
    UILabel *messageLabel = nil;
    int row = [indexPath row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 320, ROWHEIGHT) reuseIdentifier:CellIdentifier];
        messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(60, 5, 240, 60)];
        [messageLabel setFont:[UIFont fontWithName:@"ArialMT" size:12]];
        [messageLabel setTextColor:[UIColor blackColor]];
        [messageLabel setBackgroundColor:[UIColor clearColor]];
        [messageLabel setNumberOfLines:3];
        [messageLabel setLineBreakMode:UILineBreakModeWordWrap];
        [messageLabel setTag: messageTag];

        [cell.contentView addSubview:messageLabel];

    }
    else{
        messageLabel = (UILabel *)[cell viewWithTag:messageTag];

    }

    [messageLabel setText:[[[aSingleton wallItemArray] objectAtIndex:row] message]];

    NSLog(@" -- > at row %d, message: %@", row, [[[aSingleton wallItemArray] objectAtIndex:row] message]);

    return cell;
}
答案

您将UILabel添加到单元格的contentView,但要求单元格查看视图。

你有没有尝试过:

messageLabel = (UILabel *)[cell.contentView viewWithTag:messageTag];

编辑:此外,你有两个内存泄漏 - 你是一个UITableViewCell和UILabel没有(自动)释放他们任何地方的alloc

以上是关于iphone sdk:无法重复使用viewWithTag的单元格(无法将setText重用于重复使用的标签)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UItextView 中添加 placeHolder 文本?在 iphone sdk [重复]

如何在iphone sdk的Touch down事件中设置增加声音的速率并重复这个声音

无法通过 iphone sdk 中的 [FBSDKAccessToken currentAccessToken] 获取访问令牌

无法导航到 nib iphone sdk

MAC iphone SDK中的subversion无法解析用户文件

iPhone SDK AVAudioPlayer - 停止然后无法启动