Próbuję użyć nowego scrollViewWillEndDragging: withVelocity: targetContentOffset: UIScrollView delegate call w systemie iOS 5, ale wydaje mi się, że nie mogę go właściwie odpowiedzieć. Zmieniam wartość targetContentOffset-> x, ale nigdy nie zostanie ona wykorzystana. Wiem, że kod jest uruchamiany, ponieważ dostanie pułapki w tej funkcji. Próbowałem nawet ustawić wartość przesunięcia na twardy numer, więc wiedziałbym, gdzie to się skończy, ale nigdy nie działa.Niestandardowe stronicowanie UIScrollView za pomocą scrollViewWillEndDragging
Czy ktoś był w stanie użyć tego poprawnie i sprawić, by działało? Czy jest jeszcze jakieś inne zaproszenie, które musi zostać wdrożone, aby to zadziałało?
Oto mój kod w przypadku gdy ktoś widzi coś złego z nim:
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
// goodOffsetX returns the contentOffset i want the scrollView to stop at
CGFloat goodOffsetX = [self _horizontalContentOffsetForTargetHorizontalContentOffset:(*targetContentOffset).x velocity:velocity.x];
NSLog(@" ");
NSLog(@"scrollViewWillEndDragging");
NSLog(@" velocity: %f", velocity.x);
NSLog(@" currentX: %f", scrollView.contentOffset.x);
NSLog(@" uikit targetX: %f", (*targetContentOffset).x);
NSLog(@" pagedX: %f", goodOffsetX);
targetContentOffset->x = goodOffsetX;
}
Czy masz 'pagingEnabled' ustawiony na' YES' na tym widoku przewijania? –
pagingEnabled jest ustawiony na NIE, docs mówi, że musi być ustawiony na NIE, aby mógł zostać wywołany ten delegat. Próbowałem również ustawić go na YES tylko dla kopnięć i nie jest wywoływany zgodnie z dokumentami, ale jest pewne logowanie konsoli, które mówi, aby nie robić tego z parametrem pagingEnabled ustawionym na YES. – Alex
Mój problem polegał na tym, że testowałem go na telefonie z iOS4. Co więcej, ustawiłeś właściwość delegata dla UIScrollView? – Marc