2010-06-20 6 views
9

UIScrollView에서 터치 지연을 줄이려고하지만 setDelaysContentTouches를 사용하고 싶지 않습니다. NO; 나는 약간의 지연이 있기를 바란다.하지만 사용자들은 너무 길다는 불평을하고있다.UIScrollView의 터치 지연을 줄이십시오?

이 방법이 있습니까? 그런 다음 사용자가 타이머 이 경과하기 전에 충분히 자신의 손가락을 드래그, 스크롤 뷰는 서브 뷰의 모든 추적을 취소하고 는 자체 스크롤 수행하는 경우

답변

3

상무부

을 말한다. 하위 클래스는 touchesShouldBegin : withEvent : inContentView :, pagingEnabled 및 touchesShouldCancelInContentView : 메서드 ( 스크롤 뷰에서 호출 됨)를 재정 의하여 스크롤보기에서 스크롤 제스처를 처리하는 방식에 영향을 줄 수 있습니다.

그래서 나는 그것을 할 수있는 쉬운 방법이 없다고 생각합니다. 이러한 방법으로 전체 타이머 시스템을 다시 구현해야 할 수도 있습니다.

0

난 그냥이 문제를 가로 질러 와서이 내 솔루션입니다 :

서브 클래스 UIScrolView

이러한 방법 오버라이드 (override) 추가 :

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view 
{ 


    self.lastTimestamp = [NSDate date]; 

    return [super touchesShouldBegin:touches withEvent:event inContentView:view]; 
} 

- (BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
     NSDate *now = [NSDate date]; 


    if (-[self.lastTimestamp timeIntervalSinceDate:now] < _delay) 
     return YES; 

    return NO; 
} 
관련 문제