2011-05-05 5 views
6

탐색 막대 및/또는 툴바의 높이/두께가 포스트 로테이션이 될지 (런타임에 프로그래밍 방식으로) 쿼리 할 수 ​​있습니까?-shouldAutorotateToInterfaceOrientation의 UI 요소 프레임 예측 :

즉, 특정 하위보기에 대한 프레임을 작성할 때 탐색 모음과 도구 모음 사이의 사용 가능한 공간을 기준으로 프레임을 설정하려고합니다. 부드럽게하려면 didRotateFromInterfaceOrientation:이 아닌 shouldAutorotateToInterfaceOrientation:에서 가장 좋지만 방향이 인 기기 간에는 과 같은 값이 다릅니다.

I 도구 모음의 두께 될 것입니다 무엇에 대한 나의 새로운 서브 뷰 프레임을 계산하고 싶습니다, 나는 그런 32pt, 44pt로 값을 하드 코딩하지 않고 그것을 할 싶습니다

어떤 생각이?

답변

1

당신은 willAnimateRotationToInterfaceOrientation:duration:

에 모든 프레임 크기 조정을해야는 AFAIK 모든 프레임 코드에서 크기를 조정 할 수 didRotateFromInterfaceOrientation:

방법 중 하나에 도달 할 때까지 UIViews의 크기를 예측하는 방법은 없습니다 도구 모음 포함. 그렇게하면 UI 요소의 크기를 완전히 제어 할 수 있습니다.

1

willAnimateRotationToInterfaceOrientation:duration: 방법으로보기 프레임을 변경할 수 있습니다.

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration]; 

    NSLog(@"%@", NSStringFromCGRect(self.navigationController.navigationBar.frame)); 
} 

자세한 내용은 Apple에서 제공 한 설명서를 참조하십시오.