Привет всем (и Merry Xmas)scrollViewDidScroll называется «дважды» после того, как столовый набор смещения
надеюсь, кто-то может ответить на мой вопрос, и это будет большой рождественский подарок .
Мой UIViewController один стол с сегментным управлением в области раздела стола. Похоже, что этот
каждый раз, когда пользователь нажимает сегментарный контроль, я перезагружать данные таблицы и, надеюсь, таблица покажет правильное положение (не точно позицию строки, поэтому я использую содержимое таблицы смещения). Вот мой код:
- (void)clickSegmentedCenter code hereontrol:(int)index {
self.firstTableOffset = 72;
self.secondTableOffset = 250;
self.thirdTableOffset = 600;
CGFloat offset_y = 0;
switch (index) {
case 0:
offset_y = self.firstTableOffset;
break;
case 1:
offset_y = self.secondTableOffset;
break;
case 2:
offset_y = self.thirdTableOffset;
break;
}
NSLog(@"[Debug] offset y is %f", offset_y);
[self.tableView reloadData];
self.tableView.contentOffset = CGPointMake(0, offset_y);
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint offset = scrollView.contentOffset;
NSLog(@"[XXX] offset y is %f", offset.y);
}
Проблема у меня есть, после того, как таблица перезагрузки данных, кажется, что я не должен вызывать self.tableView.contentOffset немедленно. Мой стол не прокручивался до позиции, когда я устанавливал. И я обнаружил, что scrollViewDidScroll вызывается дважды !!! сообщение Лог выглядит следующим образом:
Так кто-нибудь знает, что правильный путь, чтобы перезагрузить данные таблицы и прокручивать таблицу в определенной позиции ?? Заранее спасибо.
Обновление: выясняется, что мой код верен. причина в моем представленииDidLoad, i set
self.tableView.estimatedRowHeight = 230.0;
И по какой-то причине этот параметр вызывает проблему. после того, как я прокомментирую эту строку .. поведение правильное. Первоначально я установил оценку моего стола. RowHeight - это потому, что высота моей ячейки динамична. Теперь эта проблема решена. Спасибо за ребята здесь за ваши советы. Счастливого Рождества !!!
Попробуйте использовать scrollToRowAtIndexpath в Tableview. – Arasuvel
Не могли бы вы поделиться своим ожидаемым снимком экрана? –
Привет @Arasuvel, я исправляю проблему. код правильный .. ошибка из другой строки. Я обновляюсь в сообщении. –