IOS searchBar - 摆脱下面的空白区域

时间:2013-09-25 10:46:05

标签: ios uitableview searchbar

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

Bottom_Container指向一个带有searchBar的TableView。

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

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

任何人都知道如何自定义: - searchBar下方出现的空白区域? - TableView顶部的灰色区域(searchBar TableView?),只要searchBar处于活动状态,就会出现?

谢谢。

3 个答案:

答案 0 :(得分: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];

这是修复。

答案 1 :(得分:0)

我有类似的问题,在我的情况下,它是由不透明NavigationBar引起的。当我将NavigationBar设置为半透明时,底层UITableView正确地与活动UISearchBar对齐。 (注意:我在视图控制器中使用UISearchDisplayController

在您的情况下,您可以在UISearchDisplayDelegate的方法willBeginSearchwillEndSearch中移动(并设置动画)下层桌面视图。如果您仅使用UISearchBar,则需要对其进行子类化并覆盖becomeFirstResponderresignFirstResponder方法,并在那里实现“表视图移动”代码。

答案 2 :(得分:0)

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

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

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