2014-08-30 2 views
3

UITableView가 스크롤되는 동안 이상한 문제가 있습니다. 버튼을 터치하고 레이아웃 색상을 변경하는 등의 이벤트를 호출 할 수 없습니다. UISeachBar를 터치하면 키보드가 즉시 나타납니다. 주 스레드가 차단되었음을 알고 있지만이 문제를 해결할 수있는 솔루션이 있는지 궁금합니다. 문제의 간단한 설명과 함께스크롤 UIScrollView - 메인 스레드 차단

+0

셀의 – Jasper

답변

1

, 당신이 NSDefaultRunLoopMode에서 NSEventTrackingRunLoopMode로있는 tableView 실행 루프 변화를 스크롤 할 때 (Run loops 참조) 스크롤하는 동안

당신의 UI를 변경하려면 때문입니다한다고 가정 해결책은 수행 할 것 UI가 두 개의 루프 모드를 포함하는 NSRunLoopCommonModes에 업데이트됩니다.

당신의 tableview 스크롤 clunky 수 있도록 방지하십시오.

+0

을 새로 고치려면 해당 메서드를 계속 스크롤 할 때 cellForRowAtIndexPath에 코드를 표시하십시오.하지만 NSRunLoopCommonModes에서 UI 업데이트를 수행하는 방법, 사용자 상호 작용 (버튼 터치)과 같은 핸들링 이벤트를 변경하는 방법. 이 문제가 발생하지 않는 다른 깨끗한 프로젝트가 있었기 때문에 이상합니다. – mbutan

+0

더 많은 정보없이 문제가 될 수있는 것을 찾기가 매우 어렵다고 생각합니다. 적은 코드로이 동작을 격리하려고합니까? 일단 격리되면 stackoverflow에서 공유 할 수 있으며 더 많은 것을 지원할 수 있습니다. – gsempe