【发布时间】:2013-09-29 08:00:00
【问题描述】:
我(就像这里的其他人一样)遇到了与其他人一样的状态栏重叠问题,只是有点扭曲,这就是我提出一个新问题的原因。
似乎有某种机制可以让 UISearchBar 知道将它自己定位在哪里,这完全不正常。
jaredsinclair answer here (iOS 7 status bar back to iOS 6 default style in iPhone app?) 详细解释了 Apple 工程师如何允许我们将逻辑引入我们的应用程序,以便尽可能地融入用户的环境。
我仔细检查了我的应用程序中的每个 UIViewController 并进行了最轻微的修改。
在大多数情况下,我能够使用下面的代码解决问题,我在几个 SO 答案中找到了该代码
// Do any additional setup after loading the view.
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
self.edgesForExtendedLayout = UIRectEdgeNone;
}
但是,无论我在 UINavigationBar 隐藏的特定视图中做什么,这都不起作用。
基于 SO 中找到的解决方案,我能够通过将以下逻辑添加到此特定 UIViewController 来解决此问题
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
viewFrame.origin.y = viewFrame.origin.y+statusBarFrame.size.height;
}
这会根据状态栏的高度将 UIViewController n 个像素向下推。
效果如下图
问题是,当我进入搜索字段时,UISearchBar 会在顶部自行添加一个 20px 的填充,这会抵消整个 UI。
这让我得出这样的结论,即 UISearchBar 会尝试自行调整,巧合的是,它会自行调整与状态栏高度完全相同的量。
如果我不修改位置,一旦我进入搜索字段,这种自动调整就会将 UISearchBar 整齐地对齐在状态栏下方。
我希望我已经详细说明了我的困惑,我想知道是否有人对解决方案有任何想法。
【问题讨论】:
-
这个问题有运气吗?我有完全相同的问题。我在您的屏幕截图中注意到您正在使用某种滑出式导航。控制器。我也是,也许这是问题的一部分?
-
你好 @Chilly 很遗憾目前还没有解决方案,但是下周,我们将开始 UI 的另一次迭代,我将更多地研究这个问题,目前我们发布的那个麻烦,我会继续你摆姿势
标签: uisearchbar ios7 overlap uistatusbar