【问题标题】:Frame issue with UINavigation controllerUINavigationcontroller 的框架问题
【发布时间】:2013-09-10 14:52:17
【问题描述】:

在视图中使用自定义按钮推送/弹出 UIViewController 时,我看到了这个非常奇怪的问题。我确认它不会发生在我拥有的其他视图中,比如 UIViewTableController 等。我有一个计算导航栏 + 状态栏高度的函数,然后我偏移了我的图标,所以它们的原点从 CGMakeRect(0.0f, navbarheight+statusbarheight, ....) 当我在手机上启动主屏幕时,这看起来很棒(这个视图被初始化为根视图):

https://dl.dropboxusercontent.com/u/28315319/photo%20%282%29.PNG

然后,当我将一个新视图推送到导航控制器上时,我发现这个间隙突然出现了。这不会发生在模拟器上,但会发生在手机上。同样,顶部按钮被放置为 CGMakeRect(0.0f, navbarheight+statusbarheight, ....)

https://dl.dropboxusercontent.com/u/28315319/photo%20%283%29.PNG

最后,当我弹出那个视图时,我原来的根视图包含这个间隙。

https://dl.dropboxusercontent.com/u/28315319/photo%20%281%29.PNG

不知道是什么导致了真实手机(iphone 4s + iphone 5)而不是模拟器上发生这种情况。如果您需要更多信息,请告诉我。

更新:

据我所知 - 这是 XCode 模拟器中的一个错误,没有考虑导航栏的高度。我不再使用模拟器,只是将其分发到我的手机上。

【问题讨论】:

  • 当你将 UIViewController 推到 NavController 上时,frame origin 0.0f,0.0f 不还是屏幕右上角还是(0.0f, navbarheight+statusbarheight)?
  • 看来第三张快照的间隙等于你的导航栏+状态栏高度
  • 其实我注意到view.center从第一次加载(160.00,284.0)变成了pop(160.00,316.0)

标签: ios objective-c ios6 uinavigationcontroller uinavigationbar


【解决方案1】:

听起来你可能还没有将self.navigationController.navigationBar.hidden 设置为YES。这样做应该会自动考虑导航栏的偏移量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多