0

我正在使用 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];
}

隐藏在 UITableview 后面的范围按钮

有人可以帮忙吗?谢谢你。

4

1 回答 1

0

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

所以我得到了帮助

UISearchController 搜索栏位置下降 64 点

UISearchController 在表头视图中呈现的 UISearchBar 在活动时动画太远

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

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

不过谢谢大家帮忙。

于 2017-11-30T07:26:26.210 回答