如何根据ios中的行数来确定表视图的大小?

时间:2015-10-16 14:59:00

标签: ios objective-c iphone uitableview

我的表视图中有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;
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

如果您希望单元格的大小一致,并且表格的大小基于(我推荐这个),那么:

#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;
}