2014-11-04 1 views
0

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 생각하고 내 자신을 작성하지만 UINavigationControllerUIToolbar는 읽기 전용 속성입니다 : 나는 350와 같은 큰 높이 값을 사용할 때와 동일한 사실, 난 얻을. 그 밖의 무엇을 시도해도 될까요?

+0

프레임을'viewWillAppear :'에 설정해 보셨습니까? – n00bProgrammer

+0

예. 비록 'viewWillAppear :'실제로'viewDidLoad' 이후에 호출되기 때문에 이것이 작동하도록 허용 했더라도 이것이 필요하다고 생각하지 않습니다. –

+1

서브 클래스에서'layoutSubviews'를 무시하는 것이 나에게 가장 좋은 방법 인 것 같습니다. 가능한 많은 솔루션을 시도했지만,'UIToolBar'에'@ implementation' 블록을 추가하고'layoutSubviews'를 오버라이드하는 것이 제가 발견 한 유일한 해결책입니다. – n00bProgrammer

답변

0

아래 단계를 시도하십시오,

  1. 서브 클래스의 drawRect
  2. 도구 모음

이 당신을 도울 수 있습니다 희망의 새 동작을 지정 UIToolbar

  • 우선합니다.

  • +0

    서브 클래 싱이 좋을지라도,'UIToolbar'의 서브 클래스를 읽기 전용 속성 ('UINavigationController'의 경우)에 할당 할 수 없습니다. 이 문제를 해결할 수있는 방법을 생각하면 도움이 될 것입니다. 내 목표는 툴바가 콘텐트/컨텍스트 변경없이 뷰 컨트롤러간에 유지되도록하는 것입니다. –