메인 스레드가 오랜 시간 작업을하는 동안 움직이는 회전 바퀴를 표시하는 방법이 있습니까? 애니메이션은 UIActivityIndicatorView를 만든 동일한 스레드에 의해 처리됩니다. 맞습니까? 그렇다면 여러 스레드에 속한 뷰가 동일한 뷰 계층 구조에있을 수 있습니까?메인 스레드가 통화 중일 때 UIActivityIndicatorView를 실행하십시오.
다른 모든 것은 실패합니다. 오랜 작업 자체를 백그라운드 스레드로 옮기지 않아도되지만, UI가 작동하는 동안 어떻게 든 멈춰야 할 것입니다. 내가 어떻게해야할지 모르겠다.
편집 : 1 세대 장치에서 "길이가 길다"는 약 2 초입니다.
지옥, 나는 가까웠다. performSelectorOnMainThread를 시도했지만, 지연이 중요한 것처럼 보였다. –
@Seva 메인 스레드에서 오랜 시간 동안 작동하는 것은 일반적으로 좋지 않습니다. – Giao
Giao가 말하는 것은 사실입니다. 그러나 응용 프로그램이 발생하는 동안 일시 중지하려면 응용 프로그램이 이상한 아이디어처럼 보이지 않습니다. 그러나 더 나은 해결책은 작업이 끝나면 [[UIApplication sharedApplication] beginIgnoringInteractionEvents] 및 endIgnoringInteractionEvents를 사용하는 것입니다. –