我有一个视图控制器,其中包含一个包含聊天列表的tableview,一个在导航项中添加的搜索控制器(iOS 11功能)
let searchController = UISearchController(searchResultsController: nil) searchController.dimsBackgroundDuringPresentation = false navigationItem.searchController = searchController definesPresentationContext = true
当用户在表格视图中点击聊天时,应用程序会使用另一个包含该聊天消息的表格视图来推送新的视图控制器.这有点像它应该:
问题是,当用户激活搜索控制器,找到一些聊天并点击它时,包含表视图的推送视图控制器和聊天消息会做一些非常奇怪的动画,表格视图不应该发生:
我在实际导航之前加载数据,并使用表视图上的reload()将其绑定到viewDidLoad中的表视图.有问题的表视图使用自动布局和自定义单元格.
问题与UITableView has unwanted animation when reloadData is called非常相似,但对我来说只有在iOS 11搜索控制器处于活动状态时才会发生.
编辑:如果我删除tableView.rowHeight = UITableViewAutomaticDimension并使用func tableView使用固定高度(_ tableView:UITableView,heightForRowAt indexPath:IndexPath) – > CGFloat问题仍然存在
解决方法
就个人而言,我只是在呈现新的视图控制器之前隐藏searchView控制器.
(例如,使用带有完成处理程序的UIView.animates)
(例如,使用带有完成处理程序的UIView.animates)
我不打算进一步调查,因为自iOS11以来,安全区管理存在一个深奥的问题.一个bug?