2009-04-11 1 views
1

예 : 사용자가 앱 사용 중에 전화를 걸면 시스템에서 앱을 종료합니다. 그러나 사용자가 통화 중일 때 앱으로 돌아 오면 상태 표시 줄이 평소보다 더 많이 걸립니다. 그 사람이 아직 통화 중이라는 것을 나타냅니다. 그러나 이로 인해 레이아웃 문제가 발생합니다. 내가 이해하는 것처럼, 시스템은 다음 메시지를 layoutSubviews 메서드에 보내면 내 레이아웃의 모든 UIView 개체가 올바르게 표시됩니까? 시스템에 의해 호출 된 모든 레이아웃 변경에서 그러한 일이 발생합니까?시스템은 항상 UIView의 layoutSubviews : 레이아웃 변경 메소드를 호출하여 레이아웃의 변경 사항에 대응할 수 있습니까?

답변

1

이 방법은 기하학의 기본 변경 사항 (UIView의 Apple 문서 참조)에 의해 트리거되지 않습니다. 뷰의 contentMode를 UIViewContentModeRedraw로 설정하면 시스템에서 drawRect :를 호출 할 때 모든 지오메트리 변경 사항을 볼 수 있습니다 (예 : 호출 막대가있는 경우 포함). drawRect :에서 layoutSubviews를 호출하고 싶지는 않을 것입니다. 복잡한 뷰 계층 구조를 완전히 재현하는 것과 관련된 성능 문제로 인해, 통과 된 것을 기반으로 크기 조정/다시 그려야하는 부분 뷰를 구체적으로 파악할 수 있습니다 CGRect하고 수정하십시오.

관련 문제