Я использую следующие два метода делегата 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, чтобы остановить этот двойной вызов метода?
scrollViewDidScroll
метод, если у вас нет сложных дел? - person visakh7   schedule 02.08.2011