2013-04-07 1 views
1

У меня есть пара бок о бок UITableViews в UIView, и я хотел бы получить все, что нужно сделать для авторазрешения. У меня есть UIView В моем методе init():Как получить UITableView для авторазрешения?

// I don't know how big frontBack should be, so I'd like it to autosize 
UIView *frontBack = [[UIView alloc] initWithFrame:CGRectZero]; 
frontBack.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 
UITableView *table = [[UITableView alloc] 
         initWithFrame:CGRectMake(0, 0, r.size.width/2, height) style:UITableViewStyleGrouped]; 
table.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
table.dataSource = model1; 
[table reloadData]; 
[frontBack addSubview:table]; 

... (add second table similarly, except with model2) 
... 
controller.view = frontBack; 

Это не работает. Таблицы имеют высоту высот (которая меньше, чем требуется, текст отключается).

Я попробовал несколько способов получения UITableViews, чтобы изменить размер, не повезло

// contentSize is correct, but frame size does not change 
[table reloadData]; 
table.frame.size.height = table.contentSize.height; 

// contentSize is correct, but bounds does not change 
[table reloadData]; 
table.bounds.size.height = table.contentSize.height; 

// Nothing appears to change 
[table setNeedsLayout]; 
[table layoutIfNeeded]; 

// Again, no change 
[table sizeToFit]; 

я предполагаю, я пропускаю что-то основное, но я был бы признателен, если кто-то может указать на то, что это такое ,

+0

Что вы пытаетесь отобразить в своих 'UITableViews'? TableViews являются scrollviews и обычно прокручивают их содержимое, если это необходимо? – Tobi

+0

Также, если пиксели 'height' слишком малы, почему вы его устанавливаете? – Tobi

+0

Когда вы хотите изменить размер? – ipinak

ответ

0

table.bounds.size.height = table.contentSize.height;

Это свойство только для чтения, вам нужно снова установить рамку.

Кроме того, вы уверены, что ваш содержащий UIView не отключает содержимое таблицы? Вы также должны изменить размер.

+0

Я также попытался изменить его размер с помощью методов, приведенных выше, но поскольку UITableViews не изменяются правильно, я думаю, я не могу ожидать, что UIView будет работать правильно. – prewett

+0

Невозможно просто узнать высоту стола, вам придется его вычислить. Если вы используете 6.0+, то почему бы не использовать ограничения? – user352891