Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 添加UISearchBar后,UITableView底部的空白_Ios_Uitableview_Uisearchbar - Fatal编程技术网

Ios 添加UISearchBar后,UITableView底部的空白

Ios 添加UISearchBar后,UITableView底部的空白,ios,uitableview,uisearchbar,Ios,Uitableview,Uisearchbar,我正在制作一个UITableView,显示过去事件的记录。这一切看起来都很棒,直到我在顶部添加了一个搜索栏。当它滚动到顶部时,它看起来就像我想要的那样: 然而,当我滚动到底部时,现在有一堆空白。在这个屏幕截图中很难分辨,因为没有屏幕边框,但是tableview滚动条将停留在这个屏幕上,大约一半的页面是空白的: 有趣的是,当我激活搜索栏时(即,单击搜索栏,然后按“取消”),空白区域会消失,直到再次显示此视图 我尝试了tableView的各种设置,并在视图布局过程的各个阶段使用了reloadDa

我正在制作一个UITableView,显示过去事件的记录。这一切看起来都很棒,直到我在顶部添加了一个搜索栏。当它滚动到顶部时,它看起来就像我想要的那样:

然而,当我滚动到底部时,现在有一堆空白。在这个屏幕截图中很难分辨,因为没有屏幕边框,但是tableview滚动条将停留在这个屏幕上,大约一半的页面是空白的:

有趣的是,当我激活搜索栏时(即,单击搜索栏,然后按“取消”),空白区域会消失,直到再次显示此视图

我尝试了tableView的各种设置,并在视图布局过程的各个阶段使用了reloadData(),但都没有成功。我知道行数是正确的。我发现唯一能消除空白的方法就是禁用搜索栏。但是我想要搜索栏

以下是搜索栏的代码:

self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.searchBar.placeholder = "Search by keyword, name, etc."
        controller.searchBar.barTintColor = UIColor(red: 224/256, green: 244/256, blue: 255/256, alpha: 1)
        controller.searchBar.delegate = self

        self.pastServicesTable.tableHeaderView = controller.searchBar

        return controller
    })()

您似乎正在观察
UIKeyboardWillShowNotification
&
UIKeyboardWillHideNotification
并更改tableView的
contentInset
(将键盘大小高度添加到contentInset)当键盘隐藏时,没有将contentInsets设置为
UIEdgeInsetsZero

同样的事情也发生在我身上。在viewDidLoad(即self.tableview.rowHeight=350)中说明表格视图行高度的值修复了它

我这样解决了额外的底部空间(在viewDidLoad中):


嗨,不,我没有观察到通知或更改contentinset(至少从我所知道的代码或属性检查器中没有)。只有在使用搜索栏时才会出现键盘。另外,底部空白的高度似乎在屏幕高度的四分之一到四分之三之间不稳定地变化。嗨,为什么不尝试给tableview、table cell加上颜色,以了解我正面临的相同问题是什么,你知道如何解决它吗?非常感谢,效果非常好!你知道为什么会这样吗?我的行高因单元格而异,并且我设置了tableView。行高=UITableViewAutomatic视图中的尺寸将显示。另外,在您的解决方案中,如果我将tableView.rowHeight设置为100左右,那么底部仍然有空间(空间越大,rowHeight越接近0),但我不确定为什么。。。
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 200 // should be more than real row height will be