UIViewController与UITableView和UISearchBar差距问题

时间:2014-10-30 00:15:44

标签: ios uitableview uisearchbar

我的UIViewController里面有UITableViewUISearchBar。一旦搜索栏成为第一响应者,搜索栏和桌面视图之间就会有一个小的差距。

Initial state Searchbar becomes first responder

UISearchBarUIViewController视图的子视图而不是UITableView的子视图时,没有差距。

Initial state Searchbar becomes first responder

显然,这种方法的一个问题是搜索栏贴在顶部并且不会与其他单元格一起滚动,这是不希望的。

有什么想法吗?

修改

两个第一张图片对应于UISearchBarUITableView的孩子,其中发生了差距。

最后两张图片对应于UISearchBar视图中的UIViewController视图的子项,在这种情况下,没有间隙。

3 个答案:

答案 0 :(得分:6)

UINavigationBar半透明属性设置为NO时出现差距。将其设置为YES即可解决问题。动画再次平滑,UISearchBarUITableView之间没有差距。我无法解释原因,而且它似乎是Apple方面的一个错误,因为它很容易通过创建示例项目来重现。

答案 1 :(得分:0)

如果没有看到代码,有点困难,但也许尝试将uisearchbar设置为uitableview的标题视图,而不是将其添加为子视图。

答案 2 :(得分:0)

我怀疑它可能与UITableView并使用UITableViewController这一事实有关,您可以拉下整个表格视图和搜索栏以显示背后的空间,背景。

当您将UISearchBarUITableView插入UIView时,“下拉”用户界面不会被继承(因为它对UITableViewController是唯一的)所以“拉下”空间的“暗示”并不存在。

要检查此问题并希望解决您的问题,请通过实施UITableView属性setBackgroundViewsetBackgroundColor来阅读我对之前SO question的回答。