Ios6 UINavigationBar下的UIView在ios 7中不可见

Ios6 UINavigationBar下的UIView在ios 7中不可见,ios6,uinavigationcontroller,uinavigationbar,ios7,Ios6,Uinavigationcontroller,Uinavigationbar,Ios7,我在UINavigationBar下有一个自定义UIView。当我在iOS 6中运行应用程序时,UIView可见,但在iOS 7中不可见。UIView和UINavigationBar都由自己的控制器驱动,彼此之间没有链接 在做了一些调查之后,我找到了解决这个问题的两种方法: 将UINavigationBar的半透明属性设置为NO(因为在ios 7中现在默认为YES) customUIViewController.edgesForExtendedLayout=UIRectEdgeNone 其中

我在UINavigationBar下有一个自定义UIView。当我在iOS 6中运行应用程序时,UIView可见,但在iOS 7中不可见。UIView和UINavigationBar都由自己的控制器驱动,彼此之间没有链接

在做了一些调查之后,我找到了解决这个问题的两种方法:

  • 将UINavigationBar的半透明属性设置为NO(因为在ios 7中现在默认为YES)
  • customUIViewController.edgesForExtendedLayout=UIRectEdgeNone
其中,第1个解决方案在ios 6和ios 7中都有效;第二种解决方案只适用于ios 7,因为方法名及其值在ios 7中被重命名


还有其他人面临过类似的问题吗?我试图理解为什么会发生这种情况,或者NavigationBar的半透明属性如何影响自定义UIView

iOS 7为您的UI布局和自定义外观带来了一些变化。视图控制器布局、着色颜色和字体的更改会影响应用程序中的所有UIKit对象。请参考我的答案张贴在