设置tableview的动态高度

时间:2014-01-09 10:05:44

标签: ios iphone uitableview ios7

我的屏幕上有一个tableview。我想在最大高度显示tableview但我想根据行设置它的高度。如果有两行,那么它的高度最多应为两行。不应显示表格视图的其他部分。

enter image description here

你现在可以看到只有两行,但是表高度更多,所以显示那部分。我想动态设置表高度。我不知道如何设置。我也谷歌它,但我找不到任何解决方案

3 个答案:

答案 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)];