2013-10-05 3 views
2

У меня есть расширяемый UITableView, который может расширяться/сворачиваться, когда пользователи нажимают кнопку. Способ изменения содержимого при нажатии кнопки и присвоение contentSize.height высоте таблицы. Он хорошо работает в iOS 6.UITableView не отображается на основе его высоты в iOS 7

Однако, в iOS 7, независимо от того, какое значение я устанавливаю на высоту таблицы, оно отображается так, как высота никогда не изменяется и новое содержимое отключается. Высота, похоже, придерживается высоты начала в раскадровке. Но если я печатаю высоту таблицы, это правильно значение, которое я задал.

Вот как я могу изменить его высоту:

//Do some change to the content... 
[tableview reloadData]; 
NSLog(@"height: %f, contentHeight: %f", tableview.frame.size.height, tableview.contentSize.height);// print height: 60, contentHeight: 160 
CGRect frame = tableview.frame; 
frame.size.height = tableview.contentSize.height; 
tableview.frame = frame; 
NSLog(@"height: %f, contentHeight: %f", tableview.frame.size.height, tableview.contentSize.height);// print height: 160, contentHeight: 160 

Есть идеи?

p.s. Табличное представление находится в UIScrollView. (если это имеет значение.)

+1

Каждый 'UITableView' находится в' UIScrollView' по умолчанию. Если вы добавили еще один вручную, вы действительно не должны этого делать. –

+0

Почему вы помещаете свой UITableView в другой UIScrolView? Вам это действительно нужно? Фактически, как сказал Марко, UITableView уже имеет доступ к UIScrollView, поэтому, возможно, удаление контейнера scrollview будет отвечать вашим потребностям. – Vinestro

ответ

0

Я думаю, что ваша проблема - прокрутка. попробовать что-то вроде этого:

CGRect screen = [[UIScreen mainScreen] bounds]; 
CGSize scrollViewContentSize = CGSizeMake(screen.size.width, screen.size.height); 
[self.scrollView addSubview:tableview]; 
scrollViewContentSize.height += tableview.frame.size.height; 
[self.scrollView setContentSize:scrollViewContentSize]; 
[self.view addSubview:self.scrollView]; 
Смежные вопросы