当searchDisplayController变为活动状态时,导航栏中的搜索栏动画出现问题

时间:2014-01-09 13:49:49

标签: ios objective-c statusbar searchbar searchdisplaycontroller

当搜索栏变为活动状态时,它会跳转。看动画GIF。

结果:http://postimg.org/image/66bdqqgvb/

在Stackoverflow上搜索解决方案我找到了以下设置:

    self.edgesForExtendedLayout = UIRectEdgeNone;

结果:http://postimg.org/image/y5gf4bb9b/

跳转消失但现在搜索栏不再覆盖状态栏了。

更新

使窗口的背景颜色与搜索字段的颜色相同,使其看起来很好,尽管它有点像黑客。

2 个答案:

答案 0 :(得分:1)

你应该

self.edgesForExtendedLayout = UIRectEdgeAll;
相反,但这会让你回到你的第一个状态。因此,我会查看可能导致此问题的其他操作,请参阅启动/解除搜索时您正在执行的操作的任何其他信息。您是否在主线程中执行其他后台操作或动画?

修改

这里有另一个建议,很少在动画上看起来像搜索栏移动与表视图分开。因此,请仔细检查您的搜索栏是否在表格视图中。

答案 1 :(得分:0)

这似乎是iOS 7中的一个错误。设置edgesForExtendedLayout = UIRectEdgeNone;确实修复了它,但是在搜索栏上方有一个栏。我发现的最佳解决方案是让你的导航栏半透明。出于某种原因,只有当导航栏不透明时才会破坏动画。

self.navigationController.navigationBar.translucent = YES;