У меня странная проблема с setContentOffset, которую я не могу решить:
Я пытаюсь создать «бесконечный» вид прокрутки, поэтому я хотел бы сбросить смещение содержимого в определенной позиции.
С кодом ниже setContentOffset будет вызываться с x = 160px.
Если я перетащу вид прокрутки, мой журнал будет выглядеть так:
смещение: 158
смещение: 159
смещение: 160
смещение: 80
смещение: 160
Что происходит, когда выполняется мой setContentOffset (до 80), когда я продолжаю перетаскивать
UIScrollView, кажется, забыл об этом и продолжает на 160.
Еще более странно: когда я устанавливаю анимацию: ДА, это работает. Может быть, проблема времени?
Когда я вызываю setContentOffset из scrollViewDidScroll, scrollViewDidScroll вызывается снова.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSInteger tileNo = floor(scrollView.contentOffset.x / 80);
NSLog(@"offset: %f, tile: %d, lastTile: %d", scrollView.contentOffset.x, tileNo, lastTileNo);
if (tileNo > lastTileNo) {
[scrollView setContentOffset:CGPointMake(80, 0) animated:NO];
}
lastTileNo = tileNo;
}
Спасибо за помощь,
Stephan