我有一个包含两个容器的视图:Top_Container和Bottom_Container。 每个Container都指向一个带有TableView的VC。
Bottom_Container指向一个带有searchBar的TableView。
每当在TableView中激活searchBar时,searchBar下方的searchBar和对应于serachBarTableView的灰色区域(它会叠加TableView)之间会出现一个空格。
我一直在尝试没有成功摆脱这个空白区域但没有成功。
任何人都知道如何自定义: - searchBar下方出现的空白区域? - TableView顶部的灰色区域(searchBar TableView?),只要searchBar处于活动状态,就会出现?
谢谢。
答案 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
的方法willBeginSearch
和willEndSearch
中移动(并设置动画)下层桌面视图。如果您仅使用UISearchBar
,则需要对其进行子类化并覆盖becomeFirstResponder
和resignFirstResponder
方法,并在那里实现“表视图移动”代码。
答案 2 :(得分:0)
我刚刚在自己的代码中解决了这个问题。对我来说,问题是由2行代码引起的。
self.viewController.edgesForExtendedLayout = UIRectEdgeNone;
self.navigationBar.translucent = NO;
删除这两行后,一切都按预期工作。