2014-01-09 130 views
0

我在屏幕上有一個tableview。我只想在那個高度上顯示那個tableview,但是我想根據行設置它的高度。如果有兩排,那麼它的高度應該高達兩排。不應顯示錶格視圖的其他部分。設置tableview的動態高度

enter image description here

你可以看到,現在只有兩排,但表格高度更因此它表明part.I要動態地設置表格的高度。我不知道如何設置。我也谷歌它,但雖然我沒有找到任何解決方案

回答

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; 
+0

如果我在表中有標題,那麼它會添加到這個公式或不? – vivek

+0

是的,然後添加標題的高度。但這取決於有多少部分在那裏。如果有多個,則將其與段數相乘,然後相加。 –

+0

你可以請看看http://stackoverflow.com/questions/21133870/last-row-not-fit-in-dynamic-height – vivek

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)]; 
+0

什麼是27? :-)魔術數字非常差 –

+0

你可以改變27我已經使用它爲我的代碼:) – Ashutosh

2

我做了這樣的: 一個UITableView的高度=屏幕高度 - 導航欄的高度。 I-E

高度= 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其高度分辨率彙總 - 導航欄。

最後一行用於UITableView高度> Screensize - 導航欄,那麼UITableView應該是可滾動的,否則它不應該。

在你的情況下,你的身高將是你的UITableView的高度。