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