设置 UINavigationController 框架不会改变外观
Posted
技术标签:
【中文标题】设置 UINavigationController 框架不会改变外观【英文标题】:Setting UINavigationController Frame Does Not Alter Appearance 【发布时间】:2012-06-20 14:46:45 【问题描述】:好的,所以我有一个 UINavigationController,我正在我的 viewDidLoad 中设置它的框架。
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0, 586, 44)];
加载视图后,NavigationController 仍处于其全宽 1024
。
当视图出现时:
直到我在导航控制器上push
某些东西才会将其框架更新为586
。
推送或弹出后:
注意:调用[... setNeedsDisplay];
并不能解决问题,[... setAutoresizingMask:UIViewAutoresizingNone];
也一样
对于为什么最初不是这样或如何重绘它有什么想法吗?
【问题讨论】:
您是否尝试在 viewWillAppear: 中调整其大小而不是 viewDidLoad? @KevinHorgan — 不幸的是,我已经尝试过这种方法。好像没用。 首先,您实际上重新调整了导航控制器导航栏框架的大小,而不是控制器本身。我认为您可能想要调整导航控制器视图的大小。 【参考方案1】:我认为您不能直接更改框架,您应该自定义导航栏
【讨论】:
以上是关于设置 UINavigationController 框架不会改变外观的主要内容,如果未能解决你的问题,请参考以下文章
设置所有 uinavigationcontroller 的高度
设置 UINavigationController 框架不会改变外观
无法在 UINavigationController 上设置后退按钮