来自 XIB 的 UIViewController 没有调整到 UINavigationBar
UIViewController from XIB not resizing to UINavigationBar
我在单独的 xib 中创建了 MyViewController
并将其推送到导航堆栈。它已正确加载并调整大小,但隐藏在显示的导航栏下方(绿色按钮隐藏):
在 xib 中,我将顶部栏的所有选项设置为推断:
我该如何解决?当然我可以在xib中手动添加间距,但是这样不对。
编辑:
在 xib 的属性中,我没有看到顶部栏勾号下的扩展,因为在 xib 中我创建了 UIView,文件所有者设置为 MyViewController。
我已经设法在 viewDidLoad
中以编程方式更改 edgesForExtendedLayout
属性:
self.edgesForExtendedLayout = UIRectEdgeRight | UIRectEdgeLeft | UIRectEdgeBottom;
在问题的帮助下:
How to set UIViewController "extend edges" properties
Select 您在 xib 中的视图和转到属性检查器
和 select 顶部栏如屏幕截图所示,然后相应地设计您的屏幕。它让您了解导航栏将占用多少 space。
因为是半透明的。你应该这样做。
self.navigationController?.navigationBar.isTranslucent = false
你会看到它有效。当导航栏不是半透明时,xib 无法定位到导航栏后面显示它有什么。
我在单独的 xib 中创建了 MyViewController
并将其推送到导航堆栈。它已正确加载并调整大小,但隐藏在显示的导航栏下方(绿色按钮隐藏):
我该如何解决?当然我可以在xib中手动添加间距,但是这样不对。
编辑: 在 xib 的属性中,我没有看到顶部栏勾号下的扩展,因为在 xib 中我创建了 UIView,文件所有者设置为 MyViewController。
我已经设法在 viewDidLoad
中以编程方式更改 edgesForExtendedLayout
属性:
self.edgesForExtendedLayout = UIRectEdgeRight | UIRectEdgeLeft | UIRectEdgeBottom;
在问题的帮助下: How to set UIViewController "extend edges" properties
Select 您在 xib 中的视图和转到属性检查器
和 select 顶部栏如屏幕截图所示,然后相应地设计您的屏幕。它让您了解导航栏将占用多少 space。
因为是半透明的。你应该这样做。
self.navigationController?.navigationBar.isTranslucent = false
你会看到它有效。当导航栏不是半透明时,xib 无法定位到导航栏后面显示它有什么。