我的屏幕上有一个tableview。我想在最大高度显示tableview但我想根据行设置它的高度。如果有两行,那么它的高度最多应为两行。不应显示表格视图的其他部分。
你现在可以看到只有两行,但是表高度更多,所以显示那部分。我想动态设置表高度。我不知道如何设置。我也谷歌它,但我找不到任何解决方案
答案 0 :(得分:2)
我是这样做的: 一个UITableView,其高度=屏幕高度 - 导航栏高度。 我是
height = self.view.frame.size.height-64
self.dataArrayForCategory is our Datasource and 44 is our RowHeight.
[self.tblHomeMenu setFrame:CGRectMake(0, 0, 320, 44*self.dataArrayForCategory.count)]; (self.tblHomeMenu.frame.size.height>height)?[self.tblHomeMenu setFrame:CGRectMake(0, 0, 320, height)]:[self.tblHomeMenu setFrame:CGRectMake(0, 0, 320, 44*self.dataArrayForCategory.count)]; if (self.tblHomeMenu.frame.size.height>self.view.frame.size.height-64) { [self.tblHomeMenu setScrollEnabled:YES]; }
我有一个UITableView,其高度为Screensize - Navigationbar。
如果UITableView height>使用最后一行屏幕大小 - 导航栏然后UITableView应该是可滚动的,否则它不应该。
在您的情况下,您的身高将是UITableView的高度。
答案 1 :(得分:1)
首先获取行数,然后将其乘以各行的高度。
float height = (no_of_row) * row_height + header_height; // 4*25.00 + 10
CGRect frame = CGRectMake(self.table.frame.origin.x, self.table.frame.origin.y, self.view.frame.size.width, height);
self.table.frame =frame;
答案 2 :(得分:0)
使用以下代码:
float height=27.0f*[yourArray count];
if (height > MaxHeight)
{
height = MaxHeight;
}
[yourTableView setFrame:CGRectMake(yourTableView.frame.origin.x, yourTableView.frame.origin.y,yourWidth,height)];