【发布时间】: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