본문 바로가기

setNeedsDisplay

setNeedsLayout VS layoutIfNeeded / setNeedsDisplay VS layoutIfDisplay setNeedsLayout - 호출 시 needsLayout flag가 YES로 변경. - 호출 즉시 뷰가 적용되는 것이 아니라 다음 run loop에 뷰 변경이 적용 - 여러 부분에서 호출하더라도, 다음 run loop에서 한번만 적용 - layoutSubview가 호출 됨 layoutIfNeeded - 호출 시 needsLayout flag를 체크하여 YES인 경우 뷰 변경을 즉시 적용. - 호출 즉시 뷰 변경을 적용하기 때문에 여러 부분에서 사용할 경우 성능상의 문제가 생길 수 있음 - layoutSubview가 호출 됨 setNeedsDisplay - 호출 시 needsDisplay flag가 YES로 변경. - 호출 즉시 뷰가 적용되는 것이 아니라 다음 run loop에 뷰 변경이 적용 - 여러.. 더보기
Run Loop Run Loop - 이벤트 처리를 위한 loop로 입력소스와 타이머소스를 주로 처리. 1) 입력소스(input source): 다른 thread나 어플리케이션에서 전달되는 메시지 이벤트(비동기식) 2) 타이머소스(timer source): 예정시간이나 반복수행간격에 따라 발생하는 이벤트(동기식) - 앱을 계속 살려두기 위함 - 할 일이 많을 때는 thread를 바쁘게, 할 일이 없을 때는 쉬게 하는 것을 목적으로 함 - Main thread에서 생성된 Main run loop 이외의 경우 사용자가 직접 추가해야 함 - 지속적 장호작용이 필요한 경우 반드시 사용(ex: 통신, 타이머) - 사용자 이벤트(user interaction)발생 및 처리과정 1) 이벤트 발생(터치, 키보드 등) 2) 시스템에서 p.. 더보기