我正在使用UISearchController创建一个搜索屏幕,我必须在其中显示三个范围按钮。我已经以编程方式放置搜索栏。但不知何故,范围按钮隐藏在UITableView后面。
- (void)viewDidLoad {
[super viewDidLoad];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.delegate = self;
self.tblFoundList.tableHeaderView = self.searchController.searchBar;
self.definesPresentationContext = YES;
[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setDefaultTextAttributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];
[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setAttributedPlaceholder:[[NSAttributedString alloc] initWithString:@"Search by" attributes:@{NSForegroundColorAttributeName: [UIColor lightGrayColor]}]];
self.searchController.searchBar.tintColor = [UIColor purpleColor];
self.searchController.searchBar.barTintColor = [UIColor groupTableViewBackgroundColor];
self.searchController.searchBar.scopeButtonTitles = @[@"A",@"B", @"C"];
[self.searchController.searchBar sizeToFit];
}
有人可以帮忙吗?谢谢。
答案 0 :(得分:0)
正如我之前提到的,我以编程方式创建了UISearchController,因此图像中的UITableview是UISearchController的UITableview,这就是没有任何影响它的原因。
所以我得到了
的帮助UISearchController Search Bar Position Drops 64 points
和
UISearchBar presented by UISearchController in table header view animates too far when active
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
{
if (bar == self.searchController.searchBar) {
return UIBarPositionTopAttached;
}
else { // Handle other cases
return UIBarPositionAny;
}
}
在添加以下方法时,搜索栏向上移动,范围按钮可见。
但是,谢谢大家帮忙。