无法设置 UITableViewCell 高度

Not possible to setup UITableViewCell height

请帮我设置 UITableViewCell 高度。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *simpleTableIdentifier = @"SimpleTableItem";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    UILabel *l0, *l1;
    if (cell == nil) {

        CGRect f = tableView.frame;
        float sc0 = pow(dt.PHI_1, 3.f);
        float sc1 = 1. - sc0;

        CGRect z =CGRectMake(0, 0, 0, 0);//f.size.height
        CGRect r =CGRectMake(0, 0, f.size.width, f.size.height / 26.f);
        CGRect r0 =CGRectMake(0, 0, f.size.width * sc0, f.size.height / 26.f);
        CGRect r1 =CGRectMake(f.size.width * sc0, 0, f.size.width * sc1, f.size.height / 26.f);

        cell = [[UITableViewCell alloc] initWithFrame:r]
        l0 = [[UILabel alloc] initWithFrame:r0];
        l0.tag = 100;
        [cell addSubview:l0];
        l1 = [[UILabel alloc] initWithFrame:r1];
        l1.tag = 101;
        [cell addSubview:l1];
        [cell.textLabel setFrame:z];
        [cell.imageView setFrame:z];
        [cell setFrame:r];
        [cell.backgroundView setFrame:r];
    } else {
        l0 = (UILabel *)[self.view viewWithTag:100];
        l1 = (UILabel *)[self.view viewWithTag:101];
    }
    cell.backgroundColor = [[UIColor alloc]initWithWhite:.0f alpha:0.f];

    cell.imageView.hidden = YES;
        cell.textLabel.hidden = YES;
        [l0 setText:@"B"];
        l0.backgroundColor = [UIColor yellowColor];

        [l1 setText:@"TEXT"];
        l1.backgroundColor = [UIColor redColor];

        return cell;
}

这段代码给出了这个:

这样的方法对我没有帮助:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGRect f = tableView.frame;

    return f.size.height / 26.f;
}

所以,如果我将高度设置得小一些。即f.size.height / 26.f我有透明条

UITableView定义:

table = [[UITableView alloc] initWithFrame:CGRectMake(x,y,w,h)];
table.dataSource = self;
[table setTag:1];
[self.view addSubview:table];

请提供一种设置单元格高度的方法。如果我设置非常大的 UITableViewCell 高度,它也不会被修改 - 只显示顶部。

为单元格自定义 class 并使用此 class 而不是 UITableViewCell。 并在自定义单元格 class 中的 - (void)awakeFromNib {} 中设置单元格的 属性。试试这个。我想这可能对你有用。 :)

最好使用具有自动布局的自定义 UITableViewCell 创建 UI 并将这些行添加到 viewDidLoad

tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension 

感谢大家。我找到了解决方案。

  1. 使用storeboard声明UITableView
  2. 使用下面的代码定义高度。

代码:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        CGRect f = tableView.frame;
        return f.size.height / 26.f;
    }

我不明白,但当我以编程方式声明 table 时它不起作用。