0

我有一个视图,它有两个容器:Top_Container 和 Bottom_Container。每个 Container 都指向一个带有 TableView 的 VC。

Bottom_Container 指向顶部带有 searchBar 的 TableView。

每当在 TableView 中激活 searchBar 时,searchBar 下方会出现一个空白区域,位于 searchBar 和对应于 serachBarTableView(与 TableView 重叠)的灰色区域之间。

我一直在尝试摆脱这个空白,但没有成功。

任何人都知道如何自定义: - 出现在 searchBar 下方的空白区域?- 每当 searchBar 激活时出现的 TableView 顶部的灰色区域(searchBar TableView?)?

谢谢你。

4

3 回答 3

0

I had similar problem and in my case it was caused by opaque NavigationBar. When I set NavigationBar to translucent, then the underlaying UITableView is correctly aligned to the active UISearchBar. (note: I'm using UISearchDisplayController in my view controller)

In your case maybe you can move (and animate) the underlaying table view in UISearchDisplayDelegate's methods willBeginSearch and willEndSearch. If you are using UISearchBar only, then you need to subclass it and override becomeFirstResponder and resignFirstResponder methods and implement the "table view moving" code there.

于 2013-09-29T17:57:37.237 回答
0

我刚刚在自己的代码中解决了这个问题。对我来说,这个问题是由两行代码引起的。

self.viewController.edgesForExtendedLayout = UIRectEdgeNone; self.navigationBar.translucent = NO;

删除这两条线后,一切都按预期工作。

于 2014-03-24T05:37:26.807 回答
0

尝试使用以下代码:

CGRect rect = self.searchBar.frame;
UIView *lineView = [[UIView alloc]initWithFrame:CGRectMake(0, rect.size.height-2,rect.size.width, 2)];
lineView.backgroundColor = [UIColor clearColor];
[self.searchBar addSubview:lineView];

这是修复。

于 2013-09-25T10:56:00.627 回答