编辑高度的UIToolbar
问题描述:
在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分。当我使用像350,高度大的值也是如此,我得到:
Before: {{0, 623}, {375, 44}}
After: {{0, 317}, {375, 350}}
我还以为子类UIToolbar
和创造我自己的,但UIToolbar
上UINavigationController
是一个只读属性。我还可以尝试什么?
答
请尝试以下步骤,
- 子类的UIToolbar
- 覆盖的drawRect中
- 指定工具栏
希望这可以帮助你的新的行为。
+0
虽然子类化会很好,但我无法将“UIToolbar”的子类指定给只读属性(“UINavigationController”就是这种情况)。如果你能想到解决这个问题的方法,那会很有帮助。我的目标是让我的工具栏在视图控制器之间保持不变,而不会改变内容/上下文。 – 2014-11-04 06:44:40
你有没有试过在'viewWillAppear:'中设置它的框架? – n00bProgrammer 2014-11-04 05:47:02
是的。尽管'viewWillAppear:'实际上是在'viewDidLoad'之后调用的,所以即使它允许它工作,我也不认为这是必要的。 – 2014-11-04 05:51:54
在子类中重写'layoutSubviews'似乎是我最好的选择。我尝试了许多可能的解决方案,但为'UIToolBar'添加'@ implementation'块并重写'layoutSubviews'是我发现的唯一工作解决方案。 – n00bProgrammer 2014-11-04 06:08:37