隐藏在UITableview后面的范围按钮

时间:2017-11-28 12:47:37

标签: ios uitableview uisearchcontroller iphone-8-plus

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

Scope buttons hiding behind the UITableview

有人可以帮忙吗?谢谢。

1 个答案:

答案 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;
      }
    }

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

但是,谢谢大家帮忙。