使用UISearchController在第一个表上方的差距

时间:2018-06-05 09:38:41

标签: ios swift uitableview uisearchcontroller ios10.3

使用iOS 10.3进行测试时,我无法删除第一个表行的间隙。我尝试了在automaticallyAdjustsScrollViewInsets等其他帖子上建议的所有解决方案,在层次结构中的UITableView上方添加了一个虚拟视图,例如here - 但都没有成功。

以下是设置和方案。

我有一个UITiewController,它有UITableView。叫它V1。它嵌入在导航控制器中。

我将viewDidLoad()中的UISearchController添加到tableview标头中。我没有设置任何以编程方式控制任何布局的约束。

 self.searchController.obscuresBackgroundDuringPresentation = false
 self.searchController.hidesNavigationBarDuringPresentation = true
if #available(iOS 11.0, *)  {

            self.searchController.searchBar.delegate = self
            self.navigationItem.searchController = self.searchController
            self.navigationController?.navigationBar.prefersLargeTitles = true
            self.searchController.searchBar.scopeButtonTitles = ["All","A","B"]
            self.navigationItem.hidesSearchBarWhenScrolling = true

        } else {

           self.searchController.searchBar.delegate = self
           self.searchController.searchBar.scopeButtonTitles = ["All","A","B"]
           tableView.tableHeaderView = searchController.searchBar
           self.searchController.searchBar.sizeToFit()
}

我有另一个VC(表),我使用unwind segue从中捕获数据。叫它V2。

我在展开方法中执行以下操作

DispatchQueue.main.async {

                self.searchController.searchBar.text = searchText

                    self.searchController.isActive = true
                let scope = self.searchController.searchBar.scopeButtonTitles![self.searchController.searchBar.selectedScopeButtonIndex]

                self.filterContentForSearchText(searchText, scope: scope)

            }

场景1 - 工作正常 1.打开V1在表头中准确显示行和搜索栏。 2.点击打开V2的栏按钮 3.选择一个值并返回 4.返回值分配给搜索栏,搜索栏在导航栏中打开 5表显示匹配V2的返回值的行 第一行和搜索栏之间没有差距

场景2 - 失败。 1.打开V1在表头中准确显示行和搜索栏。 2.向上滚动行,使标题位于导航栏下方 3.点击打开V2的栏按钮 4.选择一个值并返回 5.返回值分配给搜索栏,搜索栏在导航栏中打开 5表显示匹配V2

的返回值的行 此方案中的

问题是第一行和搜索栏之间出现间隙。 如果我点击搜索栏上的取消按钮,则会在表格顶部恢复搜索栏,但搜索栏即标题行和导航栏之间存在间隙。

我注意到,当上述情况发生时,tableview的起源是-88。

我尝试将表视图顶部约束设置为超级视图,即顶部布局指南的视图和底部。

可能是什么问题?附上截图。

  1. 屏幕截图显示有效搜索控制器与第一个单元格之间的差距。enter image description here
  2. 屏幕截图显示无效搜索控制器与第一个单元格之间的差距。enter image description here
  3. 可视调试器显示橙色的ViewController视图,绿色的tableview视图和平面plum中的标题视图。在我选择的第一个单元格上方有一个视图。不知道它是什么,但它是否导致问题?底部表也有一个视图。 enter image description here
  4. 由于 阿希什

0 个答案:

没有答案