UITableViewCell 内不显示 UILabel

发布于 2024-10-06 00:37:46 字数 1857 浏览 9 评论 0原文

我有这段代码,它给出了下面截图的结果。它位于 tableView:cellForRowAtIndexPath: 方法中。我不知道为什么栏上方的文字没有显示。有人有什么想法吗?谢谢。

cell.textLabel.text = @"";
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.textAlignment = UITextAlignmentLeft;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    UILabel * label = [[UILabel alloc] initWithFrame: cell.textLabel.frame];
    label.backgroundColor = [UIColor clearColor];
    label.text = [NSString stringWithFormat:@"%.1f%% (%i)",([[options_votes objectAtIndex: [indexPath row]] intValue] * 100.0 / total_votes),[[options_votes objectAtIndex: [indexPath row]] intValue]];
    NSLog(@"%@",[NSString stringWithFormat:@"%.1f%% (%i)",([[options_votes objectAtIndex: [indexPath row]] intValue] * 100.0 / total_votes),[[options_votes objectAtIndex: [indexPath row]] intValue]]);
    label.textAlignment = UITextAlignmentRight;
    [cell.contentView addSubview:label];
    [label release];
    label = [[UILabel alloc] initWithFrame: cell.textLabel.frame];
    label.backgroundColor = [UIColor clearColor];
    label.text = [options objectAtIndex:[indexPath row]];
    NSLog(@"%@",[options objectAtIndex:[indexPath row]]);
    label.textAlignment = UITextAlignmentLeft;
    [cell.contentView addSubview:label];
    [label release];
    UIImageView * image_view = [[UIImageView alloc] initWithImage:nav_delegate->back_bar];
    image_view.frame = CGRectMake(10, 44, 280, 10);
    [cell.contentView addSubview:image_view];
    [image_view release];
    image_view = [[UIImageView alloc] initWithImage:nav_delegate->blue_bar];
    image_view.frame = CGRectMake(10, 44, 5 + [[options_votes objectAtIndex: [indexPath row]] intValue] * 275.0/total_votes, 10);
    [cell.contentView addSubview:image_view];
    [image_view release];

替代文字

I have this code and it gives the result of the screenshot below. It's in the tableView:cellForRowAtIndexPath: method. I don't know why the text above the bars isn't showing. Does anyone have any ideas? Thank you.

cell.textLabel.text = @"";
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.textAlignment = UITextAlignmentLeft;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    UILabel * label = [[UILabel alloc] initWithFrame: cell.textLabel.frame];
    label.backgroundColor = [UIColor clearColor];
    label.text = [NSString stringWithFormat:@"%.1f%% (%i)",([[options_votes objectAtIndex: [indexPath row]] intValue] * 100.0 / total_votes),[[options_votes objectAtIndex: [indexPath row]] intValue]];
    NSLog(@"%@",[NSString stringWithFormat:@"%.1f%% (%i)",([[options_votes objectAtIndex: [indexPath row]] intValue] * 100.0 / total_votes),[[options_votes objectAtIndex: [indexPath row]] intValue]]);
    label.textAlignment = UITextAlignmentRight;
    [cell.contentView addSubview:label];
    [label release];
    label = [[UILabel alloc] initWithFrame: cell.textLabel.frame];
    label.backgroundColor = [UIColor clearColor];
    label.text = [options objectAtIndex:[indexPath row]];
    NSLog(@"%@",[options objectAtIndex:[indexPath row]]);
    label.textAlignment = UITextAlignmentLeft;
    [cell.contentView addSubview:label];
    [label release];
    UIImageView * image_view = [[UIImageView alloc] initWithImage:nav_delegate->back_bar];
    image_view.frame = CGRectMake(10, 44, 280, 10);
    [cell.contentView addSubview:image_view];
    [image_view release];
    image_view = [[UIImageView alloc] initWithImage:nav_delegate->blue_bar];
    image_view.frame = CGRectMake(10, 44, 5 + [[options_votes objectAtIndex: [indexPath row]] intValue] * 275.0/total_votes, 10);
    [cell.contentView addSubview:image_view];
    [image_view release];

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓬勃野心 2024-10-13 00:37:46

只是在黑暗中刺了一下,但因为你做了 cell.textLabel.text = @"";,它可能会将 textLabel 的框架缩小到 0 的宽度。尝试创建基于从您知道具有正确可见尺寸的框架中取出。

Just a stab in the dark, but because you did cell.textLabel.text = @"";, it might have shrank the frame of the textLabel there to a width of 0. Try creating your labels based off of a frame that you know to be of a correct visible size.

再可℃爱ぅ一点好了 2024-10-13 00:37:46

要显示 2 个标签,您可以使用以下代码:

cell.accessoryType = UITableViewCellAccessoryNone;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    if (indexPath.row == 0) {
        UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(11, 10, 280, 25)];
        label1.backgroundColor = [UIColor clearColor];
        label1.text = @"Your Text Here";
        label1.textAlignment = UITextAlignmentRight;
        [cell.contentView addSubview:label1];
        [label1 release];
    }
    if (indexPath.row == 1) {
        UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(11, 10, 280, 25)];
        label2.backgroundColor = [UIColor clearColor];
        label2.text = @"Your Text Here";
        label2.textAlignment = UITextAlignmentLeft;
        [cell.contentView addSubview:label2];
        [label2 release];
    }
    if (indexPath.row == 2) {
        // Put your imageView code here.
    }

注意:如果您使用的 tableViewCell 高于默认大小 44.0,您可以在标签的 initWithFrame 方法中更改 25 数字。
希望这可以帮助你:)

To show your 2 labels, you can use this code:

cell.accessoryType = UITableViewCellAccessoryNone;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    if (indexPath.row == 0) {
        UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(11, 10, 280, 25)];
        label1.backgroundColor = [UIColor clearColor];
        label1.text = @"Your Text Here";
        label1.textAlignment = UITextAlignmentRight;
        [cell.contentView addSubview:label1];
        [label1 release];
    }
    if (indexPath.row == 1) {
        UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(11, 10, 280, 25)];
        label2.backgroundColor = [UIColor clearColor];
        label2.text = @"Your Text Here";
        label2.textAlignment = UITextAlignmentLeft;
        [cell.contentView addSubview:label2];
        [label2 release];
    }
    if (indexPath.row == 2) {
        // Put your imageView code here.
    }

Note: if you are using a tableViewCell taller than defaults size, 44.0, you can change the 25 number in the initWithFrame method of the labels.
Hope this can help you :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文