2013년 1월 5일 토요일

iOS 프로그래밍 팁 - UIActivityIndicatorView 가 에니메이션 되는 동안 UI 잠그기

어떤 버튼이 네트워크 통신을 시도 한다고 할때

버튼을 누르면 네트워크 전송 코드가...

네트워크 응답에 관련된 함수들이 대기 할것이다.

UIActivityIndicatorView를 이용해서 에니메이션을 진행 하고
네트워크 수신이 완료되거나 에러가 나거나 처리가 완료 되면

에니메이션을 중지 할 것이다.

그런데 버튼을 누르고 바로 또 누르면
또는 어떠한 UI 동작을 한다면..

문제를 일으킬 것이다.

인디케이터 에니메이션이 동작 하는 동안 UI 동작을 막도록 하려면

에니메이션 시작에서

self.view setUserInteractionEnabled:NO];
    [webActInd startAnimating];

끝에 다시 

webActInd stopAnimating];
    [self.view setUserInteractionEnabled:YES];

이렇게 하여 UI 동작을 막을 수 있다.