ios – 在激活和停用UISearchController时,UITableView在位置之间跳转

我最近在我的表视图中添加了一个UISearchController,我遇到了动画问题.当点击搜索栏并变为活动状态时,表格视图会跳起以满足搜索控制器的新(活动)位置.这个问题是搜索控制器动画到这个新位置,但表视图不是这样,它是非常刺耳的. Here is a video的问题.

表视图的顶部约束设置为视图控制器的安全区域.下面是我为配置搜索控制器编写的代码:

- (void)configureSearchController {
    UISearchController *searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    searchController.searchResultsUpdater = self;
    searchController.obscuresBackgroundDuringPresentation = NO;
    searchController.searchBar.placeholder = @"Search for any cryptocurrency";
    self.searchController = searchController;
    if (@available(iOS 11.0,*)) {
        self.navigationItem.searchController = searchController;
    } else {
        self.navigationItem.titleView = searchController.searchBar;
    }
    self.definesPresentationContext = YES;
}

有没有人对如何使转换顺利进行有任何建议?理想情况下,我希望表视图以与搜索控制器相同的速率向上移动,因为这是整个iOS中的默认行为.

解决方法

我认为,对安全区域有顶级约束的问题. SearchController在更新导航栏位置时无法更新tableview框架.因此,如果您可以将tableview的顶部约束设置为superview,则动画可以是平滑的.设置tableview约束如下:

希望,它会工作!

以上是来客网为你收集整理的ios – 在激活和停用UISearchController时,UITableView在位置之间跳转全部内容,希望文章能够帮你解决ios – 在激活和停用UISearchController时,UITableView在位置之间跳转所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。