2012-12-08 2 views
3

사용자가 tableview와 상호 작용하는 동안 진행 상황을 업데이트하지 않는 진행 표시기가있는 tableview 셀에 있습니다. 상호 작용이 중지되면 표시기가 있어야하는 위치로 점프합니다.셀에서 TableView 상호 작용을 차단하는 애니메이션

사용자가 테이블 뷰를 스크롤해도 애니메이션이 계속되도록하려면 어떻게 피할 수 있습니까?

런 루프에 추가 할 수 있습니까? 인터랙션과 애니 메이팅이 주 스레드에서 발생해야하는 경우, 어떤 문제를 해결할 수 있습니까?

답변

3

먼저 진도 표시기를 업데이트해야합니다. 스크롤 할 때 UIScrollView 클래스의 기본 동작은 응답을 유지하기 위해 UI 업데이트를 일시 중지하는 것입니다. 스크롤 속도와 같은 것들이 특히 오래된 장치에서 특별히 할 일이있을 때 놀라 울 정도로 빨리 저하 될 수 있음을 발견했습니다.

경고 어떻게하면됩니까? 음, this question has a solution for you처럼 보입니다. 간단한 요약은 다음과 같습니다

  • 스크롤이 runloop이 모드에서
  • 솔루션 동안 트리거되지 UITrackingRunLoopMode
  • 귀하의 업데이트 코드에서 runloop을두고 : NSTimer 트리거 진행 표시기 업데이트를하는 타이머를 실행 NSRunLoopCommonModes에 있으므로 스크롤하는 동안 계속 실행됩니다.

그게 전부입니다. UIView 스크롤하는 동안 업데이트가 문제가되지 않습니다. 업데이트를 트리거하는 코드를 실행하면됩니다. '스크롤 - 증거'타이머를 사용하면 표시기가 잘 업데이트됩니다. linked question, so do click through to read에는 좋은 예제 코드가 있습니다!

+0

많은 고마워, 내가 살펴 보겠다. – jarryd

관련 문제