Iphone UITableViewCell未在中显示UILabel

Iphone UITableViewCell未在中显示UILabel,iphone,objective-c,uikit,uitableview,uilabel,Iphone,Objective C,Uikit,Uitableview,Uilabel,我有这个代码,它给出了下面截图的结果。它位于tableView:cellForRowAtIndexPath:method中。我不知道为什么栏上的文字没有显示出来。有人有什么想法吗?多谢各位 cell.textLabel.text = @""; cell.accessoryType = UITableViewCellAccessoryNone; cell.textAlignment = UITextAlignmentLeft; cell.selectionStyle = U

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

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];

只是暗中捅了一刀,但因为你做到了
cell.textlab.text=@”,它可能已将textLabel的框架缩小到0的宽度。尝试根据您知道具有正确可见大小的框架创建标签。

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

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号。

希望这能帮助您:)

好的,谢谢。使用这个框架,它确实在其他地方起作用。我会尝试改变它,谢谢你,但正如你在图片上看到的,我希望每行有多个标签。另外,在代码中,我会使用if…else结构或switch语句。