2016-01-25 5 views
1

У меня есть UITableView подключен через делегат так:Изменение кадра UITableView программно

enter image description here

все работало отлично. Но мне нужно динамически изменять высоту UITableView, основываясь на содержании других элементов пользовательского интерфейса. Следующие не работают:

/* UITableView Frame */ 



CGRect newFrame = CGRectMake(10, 10, 300, 200); 
    self.spotlightTableView.frame = newFrame; 

Его всегда используют рамки, которые я установил в StoryBoard. Как это исправить?

+0

У вас есть табличное представление в прокрутке? хотите ли вы сохранить любое другое представление в scrollview, отличном от вида таблицы? –

+0

где вы звонили по коду? на взгляд действительно груз? –

+0

После того, как уведомление в поле зрения загрузилось. Да, я хочу сохранить все это в режиме прокрутки. –

ответ

3

вы должны установить рамку в viewDidLayoutSubviews. Вы также можете сделать это в viewWillAppear, но вы должны заметить, что viewDidLayout вызывается каждый раз, когда происходит макет (например, поворот устройства), а viewWillAppear - нет.

+0

Большое спасибо. Я сделал это в 'viewWillAppear', но каждый раз, когда я запускал строку состояния во время вызова, он возвращался к размеру вида контейнера. 'viewDidLayoutSubviews' работает хорошо. – lxmfly123

0

В каком коде вы устанавливаете этот новый фрейм?

В любом случае, вы должны действительно использовать autolayout/contraints для динамической адаптации рамы для просмотра таблицы на основе других элементов пользовательского интерфейса.

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