Tu jest mój kod obejścia - to właśnie wylicza gdzie przystawki do:UIScrollView nie zawsze animować wyhamowanie gdy nadrzędne scrollViewWillEndDragging
- (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;
}
Kiedy trzymam palec w dół o ponad sekundę lub dwie, aby przeciągnąć Scrollview a następnie podnieś palec, zwykle animuje się na swoim miejscu. Jednak gdy wykonuję szybki "ruch", rzadko animuje się - po prostu przyciąga do obiektu docelowegoContentOffset. Próbuję emulować domyślne zachowanie stronicowania (z wyjątkiem próby przyciągnięcia do niestandardowych pozycji).
Wszelkie pomysły?
Próbowałem to z poziomym UICollectionView, a jednocześnie pracował, uzyskany animacja był roztrzęsiony; Myślę, że w tym samym czasie miały miejsce dwie animacje. Zawijanie 'setContentOffset:' w 'dispatch_async' naprawiło to. – JLundell
Czy kiedykolwiek zrobiłeś to "perfekcyjnie"? – Lukasz