Coders,我需要你们关于ViewController和UINavigationController方面的帮助 ?

yuprxk 发布于 2014年07月16日 | 更新于 2014年07月17日
无人欣赏。

在Storyboad中,一个ViewController,经过Editor In/Navigation Controller操作, 引入了Navigation Bar,为什么视图的frame没有发生变化 frame(0.000000,0.000000,320.000000,568.000000), 我觉得应该变成这样 frame(0.000000,44.000000,320.000000,524.000000) // 524 = 568- 44(NavigationBar.height)

共5条回复
tinyfool 回复于 2014年07月16日

@sycx 老师看看

yuprxk 回复于 2014年07月17日

1楼 @tinyfool 还没睡呀,这个问题让我很迷惑,终于消灭零回复了!

qianshijia 回复于 2014年07月17日

iOS7开始Navigation Bar有两种模式,一种是和以前一样占据屏幕最上方44个points,另一种是悬浮在当前的view controller上的。只要设置view controller的edgesForExtendedLayout属性就能转换这两种方式。

  • UIRectEdgeNone 设置成个个属性的话,Navigation Bar会占据顶部44points,view会自动下移44points
  • UIRectEdgeAll 设置成个个属性的话,view controller的view就会占据全屏。在这种模式下你可以试下,把navigation bar的translucent属性设置成yes,你就能透过navigation bar看到下面的view上的内容。

Tab Bar也是同理

yuprxk 回复于 2014年07月17日

3楼 @qianshijia 我用的是Xcode5.1+iOS7.1,并没有找到view controller 的edgesForExtendedLayout属性 取消NavigationBar的translucent属性,view.frame(0,44,320,524)。 谢谢你们的回答。😄

byunting 回复于 2014年07月17日

3楼 @qianshijia 真是太感谢你了,之前使用ODRefreshControl这个下拉框架,下拉视图的位置老是不对,就是相差了顶部导航的44个point。现在我设置了edgesForExtendedLayout这个属性,终于正常了。

登录 或者 注册
相关帖子