隐藏在 UITableview 后面的范围按钮

Scope buttons hiding behind the UITableview

我正在使用 UISearchController 创建一个搜索屏幕,我必须在其中显示三个范围 buttons.I 已将搜索栏 programmatically.But 以某种方式隐藏在 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];
}

有人可以帮忙吗?谢谢。

正如我之前提到的,我以编程方式创建了 UISearchController,因此图像中的 UITableview 是 UISearchController 的 UITableview,这就是为什么没有任何影响。

所以我得到了

的帮助

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
    {
      if (bar == self.searchController.searchBar) {
        return UIBarPositionTopAttached;
      }
      else { // Handle other cases
        return UIBarPositionAny;
      }
    }

添加以下方法后,搜索栏上移并且范围按钮可见。

但是谢谢大家的帮助。