Содержимое табличного представления падает вниз при использовании 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];
(Печатается по памяти, поэтому вам может потребоваться проверить завершение кода).
Это должно исправить вашу проблему.