我的表视图中有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;
}
提前致谢。
答案 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;
}