首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >搜索结果与UISearchController的搜索栏不对齐

搜索结果与UISearchController的搜索栏不对齐
EN

Stack Overflow用户
提问于 2016-10-26 12:30:07
回答 1查看 230关注 0票数 2

我正在尝试从一个UISearchDisplayController升级到一个UISearchController,但是有很多奇怪的问题。当前的问题是搜索结果与搜索栏不一致。在纵向模式下,搜索栏与第一个搜索结果之间有一个很小的差距:

(我已将结果的背景染成黄色,以显示其扩展性)

对于景观模式,情况正好相反:搜索栏与结果的顶部重叠:

奇怪的是,如果我在结果视图仍然可见的情况下旋转视图,它就会非常完美。

我的设置是一种非常标准的方法,导航栏中有搜索栏,搜索结果在单独的UITableViewController中。原始视图控制器中的代码:

代码语言:javascript
运行
复制
- (void) viewDidLoad
{
    [super viewDidLoad];

    SearchResults *searchResults = [[SearchResults alloc] init];
    searchController = [[UISearchController alloc] initWithSearchResultsController:searchResults];
    searchController.searchResultsUpdater = searchResults;

    self.navigationItem.titleView = searchController.searchBar;

    searchController.hidesNavigationBarDuringPresentation = NO;
    searchController.dimsBackgroundDuringPresentation = YES;
    self.definesPresentationContext = YES;
}

SearchResults是一个标准的UITableViewController子类,没有特殊的格式。

我的怀疑是因为桌面视图的contentInset不正确,所以我用viewWillLayoutSubviews打印了那些,从而证实了这种怀疑。

我如何在UISearchController中解决这个明显的bug?

注意:我已经尝试将edgesForExtendedLayoutautomaticallyAdjustsScrollViewInsetsextendedLayoutIncludesOpaqueBars的任何组合用于结果表视图。

编辑:我现在已经用苹果记录了一个bug:https://openradar.appspot.com/radar?id=6138130516148224

EN

回答 1

Stack Overflow用户

发布于 2016-10-28 06:41:34

我已经找到了一种似乎适用于所有情况的解决办法。如果有人能发现我在原始代码中做错了什么,我还是会很感激的。

为了解决这个问题,在SearchResults类中添加以下内容:

代码语言:javascript
运行
复制
- (void) viewWillLayoutSubviews
{
    // Workaround for bug in UISearchController:
    CGFloat topInset = self.topLayoutGuide.length + (_searchController ? _searchController.searchBar.frame.size.height : 44);
    UIEdgeInsets insets = self.tableView.contentInset;
    if (topInset != insets.top) {
        // set the correct insets
        insets.top = topInset;
        self.tableView.contentInset = insets;
        // scroll to the top
        self.tableView.contentOffset = CGPointMake(0, -topInset);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40262370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档