0

제 생각에는 일반적인 UIToolbar를 프레임 하단에 추가합니다. 가로로 보면 작아지지 않습니다. 내가 풍경 이미지를 제공하지 않거나 다른 것을 놓치기 때문입니까? UINavigationController의 다른 모든 도구 모음은 모두 가로로 변경됩니다.UIToolbar가 가로로 작아지지 않습니다.

어떻게이 화면에 추가하나요?

toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-64, SCREEN_WIDTH, 44)]; 
toolbar.translatesAutoresizingMaskIntoConstraints = YES; 
[self.view addSubview:toolbar]; 
[self setupToolbarItems]; 

setupToolbarItems는 바로 버튼의 이미지를 만들고 설정합니다.

답변

6

자신을 추가 한 UIToolbar는 마술처럼 높이를 변경하지 않습니다. 앱 오리엔테이션을 변경하려면 앱 방향이 변경되면 높이를 직접 변경해야합니다.

막대의 높이가 바뀌는 곳에서 관찰 한 동작은 UINavigationController의 기능입니다. 방향 변경에 대한 응답으로 내비게이션 막대와 툴바의 높이를 변경합니다 (내 책의 설명 : http://www.apeth.com/iOSBook/ch25.html#SBbarMetrics). 그러나이 UIToolbar는 UINavigationController에 속하지 않으므로 자동으로 높이가 자동으로 발생하지 않습니다. 그것은 당신에게 달려 있습니다.

2

이것은 툴바의 프레임을 생성하고 있지만 뷰를 회전 할 때 다시 설정하지 않기 때문에 발생합니다. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resize) name:UIDeviceOrientationDidChangeNotification object:nil];

다음에 -(void)resize; 방법을 사용하면 도구 모음의 크기를 새 창 크기로 조정해야합니다.