2014-01-09 18 views
0

У меня есть один вид на столе на моем экране. Я хочу показать, что tableview имеет максимальную только эту высоту, но я хочу установить его высоту в соответствии с строкой. Если есть две строки, то высота должна быть до двух строк. Другая часть таблицы не должна отображаться.Установите динамическую высоту стола.

enter image description here

Вы можете увидеть прямо сейчас есть только две строки, но высота стола более так, что он указывает, что part.I хотите установить высоту таблицы динамически. Я не знаю, как установить. Я также google, но хотя я не нахожу никакого решения

ответ

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-е

высота = 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 height> Screensize - Navigationbar, тогда UITableView должен прокручиваться, иначе он не должен.

в вашем случае ваш рост будет высотой вашего UITableView.

Смежные вопросы