viewDidLoad
에서 높이를 표준 44 포인트와 다르게 설정했습니다. 예를 들어 35 점이 되길 원합니다. 코드 사용 :UIToolbar 높이 편집
CGRect frame = [[UIScreen mainScreen] bounds];
[self.navigationController.toolbar setFrame:CGRectMake(0, frame.size.height-35.f, frame.size.width, 35.f)];
및 이전 프레임의 크기를 확인하고 난의 인쇄물 도착 후 : 시뮬레이터에서이 검사 때
Before: {{0, 623}, {375, 44}}
After: {{0, 632}, {375, 35}}
을 높이는 지속적으로 44 포인트입니다.
Before: {{0, 623}, {375, 44}}
After: {{0, 317}, {375, 350}}
내가 서브 클래스 UIToolbar
생각하고 내 자신을 작성하지만 UINavigationController
에 UIToolbar
는 읽기 전용 속성입니다 : 나는 350와 같은 큰 높이 값을 사용할 때와 동일한 사실, 난 얻을. 그 밖의 무엇을 시도해도 될까요?
프레임을'viewWillAppear :'에 설정해 보셨습니까? – n00bProgrammer
예. 비록 'viewWillAppear :'실제로'viewDidLoad' 이후에 호출되기 때문에 이것이 작동하도록 허용 했더라도 이것이 필요하다고 생각하지 않습니다. –
서브 클래스에서'layoutSubviews'를 무시하는 것이 나에게 가장 좋은 방법 인 것 같습니다. 가능한 많은 솔루션을 시도했지만,'UIToolBar'에'@ implementation' 블록을 추가하고'layoutSubviews'를 오버라이드하는 것이 제가 발견 한 유일한 해결책입니다. – n00bProgrammer