我运行在iOS6的和iOS7相同的应用程序具有NavigationBar.It运行良好的iOS6的,但是在iOS7,所有的观点是有点像它没有考虑到导航条都没有。IOS 7 UIView的框架问题
我曾尝试更改模拟指标选项中的topbar属性,但它不起作用。它在iOS6中考虑按钮对NavigationBar的位置,但在iOS7中,它从屏幕顶部考虑它。
这是什么原因?
在此先感谢。
我运行在iOS6的和iOS7相同的应用程序具有NavigationBar.It运行良好的iOS6的,但是在iOS7,所有的观点是有点像它没有考虑到导航条都没有。IOS 7 UIView的框架问题
我曾尝试更改模拟指标选项中的topbar属性,但它不起作用。它在iOS6中考虑按钮对NavigationBar的位置,但在iOS7中,它从屏幕顶部考虑它。
这是什么原因?
在此先感谢。
您必须使用以下行修复它在你的观点:它的iOS 7 UI转换指南
中,如果你想改变布局中使用edgesForExtendedLayout财产
例子中提到。
self.edgesForExtendedLayout = UIRectEdgeNone;
在这个答案的时候,iOS的7仍然是保密协议,所以这是不可能的编写实际的解决方案。无论如何,我已经发布了一个只适用于注册开发者的帮助链接。
====原贴:====
阅读iOS 7 Transition Guide。其章节“更新用户界面”解释了如何解决您的问题。
RTFM =下的一票! – TheRonin
在我发布iOS 7时,仍然处于NDA之下,所以唯一可能的帮助是指向只有注册开发者才能访问的官方指南。 – Tafkadasoh
@Tafkadasoh我了解你的困境,并感谢你的努力,无论NDA如何。我会(恭敬地)建议,如果你在原始答案中提到了NDA,那么你会得到更好的服务,然后详细说明在哪里找到问题的答案,即:“这仍然在NDA之下;但是,它被记录在iOS7转换指南的第NNN页上“。这样,你会创建一个更直接有用的答案,而不是打开自己的倒计时。 –
在“的iOS 7 UI转换指南”用于布局和外观一个还提到 - 在iOS7中,视图控制器使用完整的屏幕布局。
如果我们想在视图显示在导航栏下面的位置,可以修改UIViewController的edgesForExtendedLayout这个属性来实现的。
edgesForExtendedLayout是一种类型UIExtendedEdge属性,指定的边缘的方向上延伸。
因为iOS7鼓励全屏幕布局,它的默认值是很自然的是UIRectEdgeAll,四周边缘都延伸,也就是说,如果连视图的导航栏,的TabBar下,那么该视图将延伸覆盖到周边地区。
如果我们做如下设置视图,那么该视图将不会延长对这些酒吧的后面,所以标签就出来了。 查看源打印
self . edgesForExtendedLayout = UIRectEdgeNone ;
在iOS系统7,视图控制器使用全画面打印格式。
if([UIViewController instancesRespondToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout=UIRectEdgeNone;
是的,它适合我。但我的应用程序有Tabbacontroller alos。其他的viewcontroller工作正常。在Tabbar视图控制器中发布。假设我有5个选项卡。 1.当我点击选项卡(列表屏幕打开)它工作正常,当我点击列表细节打开罚款。直到它的工作正常2.当我点击标签2(另一个列表)打开。那个时候当我点击tab1比细节屏幕主视图框架减少到64px。我试图强行增加,但不工作..在这种情况下我能做些什么? – Hitarth
if([self respondsToSelector:@selector(edgesForExtendedLayout)])
[self setEdgesForExtendedLayout:UIRectEdgeBottom];
我也有类似的问题,我发现,如果你关掉半透明导航栏的意见,将下拉相同,因为他们在iOS6的那样。
self.navigationController.navigationBar.translucent = NO;
这太棒了!节省了我几个小时的工作。谢谢。 –
是的,它适合我。但我的应用程序有Tabbacontroller alos。其他的viewcontroller工作正常。在Tabbar视图控制器中发布。假设我有5个选项卡。 1.当我点击选项卡(列表屏幕打开)它工作正常,当我点击列表细节打开罚款。直到它的工作正常2.当我点击标签2(另一个列表)打开。那个时候当我点击tab1比细节屏幕主视图框架减少到64px。我试图强行增加,但不工作..在这种情况下我能做些什么? – Hitarth
我觉得在设置这个属性前最好检查一下:'[selfrespondsToSelector:@selector(edgesForExtendedLayout)]' – jianpx