在尝试使用searchBar创建一个tableview时,遇到了我的tableView自动调整contentInset的问题,但是直到第一次滚动时才调整。在另一个没有viewBar的tableView上,问题不存在。 searchController的设置几乎从Apples TableSearchWithUISearchController示例中删除。 所以我的代码在viewDidLoad中被TableViewController调用:
resultsController = [[ResultConstantTVController alloc] init];
searchController = [[BaseSearchController alloc] initWithSearchResultsController:resultsController];
searchController.searchResultsUpdater = self;
searchController.delegate = self;
self.navigationItem.searchController = searchController;
self.navigationItem.hidesSearchBarWhenScrolling = NO;
[self.searchBar setBarStyle:UIBarStyleBlackTranslucent];
[self.searchBar setKeyboardAppearance:UIKeyboardAppearanceDark];
[self.searchBar setAutocapitalizationType:UITextAutocapitalizationTypeNone];
self.definesPresentationContext = YES;
self.dimsBackgroundDuringPresentation = NO;
我已经尝试将tableViews contentInsetAdjustmentBehavior手动设置为自动,但是直到第一次滚动时它仍然不会生效。
P.S。我正在使用Xcode,macOS和iOS的Beta版。
更新:
我设法通过致电
绕过了问题[self.navigationController.view layoutSubviews];
出现在TableViewController的viewDidAppear中。
答案 0 :(得分:0)
我已经尝试过将tableViews contentInsetAdjustmentBehavior设置为自动
是正确的,但还不够。通常也可以通过将表视图的alwaysBounceVertical
设置为YES来解决此类问题。您需要在视图控制器生命周期的早期就这样做。