Ios 编辑UIToolbar的高度

Ios 编辑UIToolbar的高度,ios,objective-c,ios8,uitoolbar,Ios,Objective C,Ios8,Uitoolbar,在viewDidLoad中,我将高度设置为与标准的44点不同。例如,我希望它是35分。使用代码: CGRect frame = [[UIScreen mainScreen] bounds]; [self.navigationController.toolbar setFrame:CGRectMake(0, frame.size.height-35.f, frame.size.width, 35.f)]; 在得到以下文件的打印输出之前和之后检查框架的尺寸: Before: {{0, 623},

viewDidLoad
中,我将高度设置为与标准的44点不同。例如,我希望它是35分。使用代码:

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点。当我使用较大的高度值(如350)时也是如此,我得到:

Before: {{0, 623}, {375, 44}}
After:  {{0, 317}, {375, 350}}

我曾想过对
UIToolbar
进行子类化,并在
UINavigationController
上创建自己的
UIToolbar
是一个只读属性。我还可以尝试什么?

请尝试以下步骤

  • 为UIToolbar创建子类
  • 覆盖DrawRect
  • 指定工具栏的新行为

  • 希望这能对您有所帮助。

    您是否尝试过在
    视图中设置它的框架将出现:
    ?是的。虽然,
    viewwillbeen:
    实际上是在
    viewDidLoad
    之后调用的,所以我认为即使它允许它工作,也没有必要这样做。在子类中重写
    layoutSubviews
    似乎是最好的选择。我尝试了许多可能的解决方案,但为
    UIToolBar
    添加
    @implementation
    块并覆盖
    layoutSubviews
    是我找到的唯一可行的解决方案。即使UINavigationController上的UIToolBar是只读属性,这也是可能的?谢谢,@n00bProgrammer!在UIToolbar上创建一个类别并覆盖所述方法
    layoutSubviews
    成功了!非常感谢你!虽然子类化很好,但我不能将
    UIToolbar
    的子类分配给只读属性(在
    UINavigationController
    上就是这种情况)。如果你能想出一个解决这个问题的办法,那会很有帮助的。我的目标是让工具栏在视图控制器之间保持不变,而不改变其内容/上下文。