문제

최신 Apple Magic 마우스로 스크롤하면 (적어도 10.6에서, 이전 Mac OS를 확인할 수 없음) iPhone에서 스크롤하는 것과 같은 관성 스크롤이 나타납니다 (즉, 손가락이 스크롤하여 스크롤 한 후에는 그렇지 않습니다. 갑자기 멈추지 만 대신 점차 느려집니다). 이 동작은 모든 nsscrollviews와 함께 "무료"입니다.

Mac 용 Tweetie와 같은 예외적 인 사례가 있습니다 (Tweetie가 How와 비슷한 맞춤형 테이블보기 클래스로 작성되었다고 들었습니다. UITableView iPhone에서 작동).

내 질문은 스크롤 뷰 가이 관성 스크롤을 수행하는 방법을 어떻게 알고 있습니까? 내 생각에 마우스 [드라이버]는 스크롤 기간 동안 댐핑 스크롤 크기 (또는 그와 비슷한)로 두루마리 이벤트를 반복적으로 보냅니다. 그러나 나는 그것이 어떻게 작동하는지 잘 모르겠습니다.

ScrollView 클래스에 스크롤 문제가 있는데 왜 그런지 알아 내려고 노력하고 있습니다 (분명히 우리는 그것이 적절한 스크롤이 발생하지 않는 이유를 알기 위해 트윗 할 소스 코드가 없습니다). 내 문제를 해결하기 위해 어떻게 작동하는지.

도움이 되었습니까?

해결책

NSSCrollView는 Magic Mouse에 대해 아무것도 모릅니다. 관성 스크롤은 반복 스크롤 이벤트에 의해 수행됩니다.

NSResponder를 무시할 수 있습니다 -scrollWheel: 방법 및 NSLOG를 사용하여 Magic Mouse 스크롤이 트랙 패드 및 기존 스크롤과 어떻게 다른지 확인하십시오.

전통적인 스크롤 세트 deltaX 그리고 deltaY 스크롤 할 "줄"의 수를 나타냅니다.

부드러운 스크롤 장치 (트랙 패드 및 마술 마우스) 사용 deviceDeltaX 그리고 deviceDeltaY 스크롤 할 픽셀의 수를 나타냅니다.

또한 Magic Mouse가 사용됩니다 scrollPhase 관성 스크롤이 진행되는시기를 나타냅니다.

주목하십시오 deviceDeltaX 그리고 deviceDeltaY NSEVENT의 개인 방법입니다.

다른 팁

추진력을 꺼내려면 앱의 시작 부분에서 key @"applemomentumscrollsupported"에 @"no"를 추가하십시오 (Magic Mouse Developer Release Notes 참조). 따라서이 항목을 트윗의 기본값에 추가하여 트윗에 대해 대체 할 수도 있습니다.

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"NO" forKey:@"AppleMomentumScrollSupported"];
 [defaults registerDefaults:appDefaults];

TuiscrollView의 소스 코드는 여기에서 확인할 수 있습니다 https://github.com/twitter/twui

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top