Содержимое табличного представления падает вниз при использовании UIRefreshControl и установке contentInset

Поэтому у меня есть стандартный подкласс UITableViewController с табличным представлением. Теперь я установил вставку содержимого в

self.tableView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);

Я также использую UIRefreshControl стандартным способом.

self.refreshControl = [[CTRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(loadData:) forControlEvents:UIControlEventValueChanged];

Все работает нормально и гладко, если табличное представление содержит достаточно данных для прокрутки (таким образом, высота размера контента больше, чем высота табличного представления). Когда в таблице недостаточно данных (например, только 2 строки), тогда, когда я начинаю опускаться, она идет гладко, а затем внезапно она прыгает примерно на 20 пунктов вниз. То же самое происходит, когда я прокручиваю в другом направлении. Это не происходит, когда нет элемента управления обновлением или когда я не изменяю contentInset. Есть идеи? Все на iOS 6.

1 ответ

Вам нужно поместить изменение contentInset в блок анимации, как это...

[UIView animateWithDuration:0.2
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     self.tableView.contentInset = UIEdgeInsetsMake(40, 0, 0, 0);
                 }
                 completion:nil];

(Печатается по памяти, поэтому вам может потребоваться проверить завершение кода).

Это должно исправить вашу проблему.

Другие вопросы по тегам