2014-01-29 2 views
2

У меня есть представление, содержащее UITableView. В представлении действительно загрузился, я установил tableFooterView таблицы как представление, которое я создаю вручную (UIView, содержащий кнопку). Когда появится вид, я регулирую кадр tableFooterView:UITableView tableFooterView с экрана для iOS6?

CGRect tableFrame = self.myTableView.frame; 
CGRect originalFrame = self.tableFooter.frame; 
CGSize imageSize = CGSizeMake(40.0f, 40.0f); 
CGRect footerFrame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y, tableFrame.size.width, imageSize.height); 
self.tableFooter.frame = footerFrame; 
CGRect nextFrame = CGRectMake((footerFrame.size.width - imageSize.width)/2.0f, 0.0f, imageSize.width, imageSize.height); 
self.tableFooterButton.frame = nextFrame; 

На iOS7, это работает так, как я хочу - когда я прокручиваю в нижней части таблицы, я вижу мой взгляд колонтитула. На iOS6, когда я прокручиваю нижнюю часть таблицы, представление нижнего колонтитула все еще вне экрана (я могу вытащить вид прокрутки и увидеть его, но после сброса он сбрасывается на экран).

Что мне делать по-другому?

+1

Попробуйте после того, как вы измените рамку колонтитула «s таблицы. 'self.myTableView.tableFooterView = nil; self.myTableView.tableFootView = self.tableFooter'. – KudoCC

+0

@KudoCC Это работает. Благодаря! Позаботьтесь, чтобы добавить его в качестве ответа? –

ответ

5

После смены кадра из таблицы сноски, попробуйте следующее:

self.myTableView.tableFooterView = nil ; 
self.myTableView.tableFooterView = self.tableFooter ; 
+0

Можете ли вы или кто-то еще объяснить, почему это работает? –

+0

@AnkitAggarwal Если мы изменим фрейм tableFooter, tableView может не знать об этом, поэтому его contentSize не изменится должным образом. Что делает код, это перезапуск tableFooterView таблицы TableView, поэтому UITableView соответствующим образом упорядочивает его содержимое. – KudoCC

+0

Мне не нужно было использовать первую строку (установка на нуль). –

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