关于我的UISearchBar下显示的范围栏,我遇到了一个特殊的问题。 基本上,我之前遇到的问题是,每当我的UISearchController处于活动状态并且用户切换标签时,如果他回到包含UISearchController的UIViewController,背景就会转回。 通过将UIViewController嵌入到UINavigationController中解决了这个问题。
现在,出现了一个新问题。当我在UISearchController已经激活的情况下切换标签时,当我切换回来时,UIScopeBar会显示在UISearchBar的顶部。这只能通过取消搜索并重新开始来解决。
我试过隐藏以下代码:
-(void)viewWillAppear:(BOOL)animated{
if(self.searchController.isActive){
[self.searchController.searchBar setShowsScopeBar:TRUE];
}
}
-(void)viewDidDisappear:(BOOL)animated{
if(self.searchController.isActive){
[self.searchController.searchBar setShowsScopeBar:FALSE];
}
}
无济于事。如果有人对这个有诀窍,我很乐意尝试一下。
答案 0 :(得分:0)
每次生成视图时以编程方式设置约束并返回到该选项卡可以通过将UIScopeBar保持在距离顶部固定的距离来实现。您也可以尝试在UIScopeBar和UISearchBar之间设置约束。
NSLayoutConstraint *topSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:UIScopeBar
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:5.0];
[self.view addConstraint:topSpaceConstraint];
如果这不能解决问题,那么您需要为我/这里的人提供更多代码来复制您所拥有的错误。