Я использую следующие два метода делегата UIScrollView для вызова другого метода в моем UIViewController:
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
// do something
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
// do something
}
Я пробовал разные способы вызова // сделать что-то, но в итоге либо оба не вызывались, либо оба метода делегата вызывались, // вызывая что-то дважды в определенных ситуациях. Например:
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if(![scrollView isDecelerating] && ![scrollView isDragging]){
//do something
}
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
if(!decelerate){
//do something
}
}
Так что с вышеупомянутым, если я прокручиваю и позволяю ему замедляться до остановки, он вызывает scrollViewDidEndDecelerating :, но если я прокручиваю и останавливаю его нажатием, он вызывает как scrollViewDidEndDragging: и scrollViewDidEndDecelerating:
Я хочу, чтобы он вызывал один или другой ... Есть ли что-то, что я могу сделать с scrollViewDidEndDecelerating: и объект scrollView, чтобы остановить этот двойной вызов метода?