如何使表视图的大小取决于ios中的行数?

如何使表视图的大小取决于ios中的行数?,ios,objective-c,iphone,uitableview,Ios,Objective C,Iphone,Uitableview,我的表视图中有3行。我制作了一个自定义单元格。现在在不同的设备上运行时,我想将表视图的高度设置为三个单元格可以容纳其中。在iPad上,它工作正常,但在iPhone上,它在底部占用的空间很少,因此请告诉我如何获得每个设备的动态高度 我使用以下方法 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { float main_height=self.tab

我的表视图中有3行。我制作了一个自定义单元格。现在在不同的设备上运行时,我想将表视图的高度设置为三个单元格可以容纳其中。在iPad上,它工作正常,但在iPhone上,它在底部占用的空间很少,因此请告诉我如何获得每个设备的动态高度

我使用以下方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    float main_height=self.table_view.frame.size.height;
    float result_cell_height;
    float percentage = (77.0 / 568.0);
    float height = self.view.frame.size.height * percentage;
    result_cell_height=(height>77.0)?height:77.0;
    if(height>main_height/3)
    {
        NSLog(@"con true");
        result_cell_height=main_height/3;
    }
    NSLog(@"result height is %f",result_cell_height);

    return result_cell_height;
}
提前谢谢

float myHeight = self.view.frame.size.height * (77/568);
[self.table_view setFrame:(CGRect){0, 0, self.view.frame.size.width, myHeight}];
您说过您希望为不同的设备调整表的大小,这样就可以了。您还说您希望它正好适合3个单元格,因此:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    float myHeight = self.view.frame.size.height * (77/568);
    return myHeight / 3;
}
相反,如果您希望单元格大小一致,并且表格大小基于此(我建议这样做),那么:


这种方法不会改变桌面视图的高度!!这就是行高!!!!我假设您正在尝试更改单元格高度,以便tableview中可以容纳3个单元格!!!是这样吗?行高度的集合将改变表格高度我猜我关心的是表格的高度应该是三个单元格的总高度,或者每个单元格的高度应该尽可能大,以便三个单元格可以放入表格视图您的代码存在严重问题。单元格的高度以表格的高度为基础。但是您要问的是如何根据单元格的总高度来确定表格的高度。其中一个需要修复。这两种高度不能相互依赖。没有行高度与桌子高度无关。如果要更改表格高度,需要根据行高乘以3@deepakkumar设置表格视图的框架
#define ROW_HEIGHT 40.0f

...

self.table_view setFrame:(CGRect){0, 0, self.view.frame.size.width, ROW_HEIGHT * 3}];

...

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return ROW_HEIGHT;
}