iOS 7 中的视图移动到导航栏上方,但在 iOS 6 中可以正常工作
Posted
技术标签:
【中文标题】iOS 7 中的视图移动到导航栏上方,但在 iOS 6 中可以正常工作【英文标题】:Views in iOS7 moved above Navigation bar but work fine in iOS6 【发布时间】:2013-12-16 16:54:26 【问题描述】:我无法让 UISearchBar 在 ios7 上正常显示。我不能使用 AutoLayout,因为我还必须支持 6 之前的旧版本 iOS 的应用程序。如果 iOS 版本为 7 及更高版本,我尝试设置容器视图的框架,但它不起作用。我还尝试了 topLayOutGuide 长度和其他 SO 帖子中提到的其他技巧,但我无法成功。 (编辑:- 我正在使用故事板)
我目前在我的代码中唯一的东西是
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
self.edgesForExtendedLayout = UIRectEdgeNone;
有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:我尝试建议在storyboard
中进行更改:
点击您的viewController
和attributes inspector
取消选中顶部栏下
如果这不起作用,请尝试以下代码:
-(void)viewWillAppear:(BOOL)animated
NSString *ver = [[UIDevice currentDevice] systemVersion];
int ver_int = [ver intValue];
if (ver_int < 7)
else
self.navigationController.navigationBar.translucent = NO;
【讨论】:
取消选中“在顶部栏下”现在可以在故事板中显示正确的视图,这是向前迈出的一步。但是当我在模拟器中运行该应用程序时,它仍然无法正常工作。非常感谢您的支持。 @ilight 很抱歉没有提供太多帮助,您尝试过我建议的代码吗? @ilight 尝试使用我的代码,但删除 self.edgesForExtendedLayout = UIRectEdgeNone; 第一次打开视图时它不起作用,但如果我返回并再次进入视图,您的代码就可以工作。我目前把它放在 ViewDiDLoad 中。我可以把它移到哪里让它一直工作? @ilight 正如我在上面写的,您应该尝试将此代码放入 viewWillAppear以上是关于iOS 7 中的视图移动到导航栏上方,但在 iOS 6 中可以正常工作的主要内容,如果未能解决你的问题,请参考以下文章