これが私のオーバーライドコードです-スナップする場所を計算するだけです:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
if(targetContentOffset->y < 400) {
targetContentOffset->y = 0;
return;
}
int baseCheck = 400;
while(baseCheck <= 10000) {
if(targetContentOffset->y > baseCheck && targetContentOffset->y < baseCheck + 800) {
targetContentOffset->y = (baseCheck + 340);
return;
}
baseCheck += 800;
}
targetContentOffset->y = 0;
}
スクロールビューをドラッグするために指を 1 ~ 2 秒以上押したままにしてから指を離すと、通常はその場所にアニメーションが表示されます。ただし、簡単な「フリック」を行うと、ほとんどアニメーション化されず、targetContentOffset にスナップするだけです。デフォルトのページング動作をエミュレートしようとしています (カスタム位置へのスナップを除く)。
何か案は?