设置UITableView contentInset也会使节标题视图不可见

时间:2011-05-13 14:51:54

标签: iphone objective-c uitableview

我正在更改我的tableviews contentInset,这样当用户滚动超出表格的上限时,tableview会显示隐藏在tableView上方的UISearchBar。

除了节标题视图外,一切正常。当向下滚动时,sectionHeaderView的顶部边界与我的tableview插图相距离屏幕顶部的距离相同,这是它在起始位置:

Header view in correct position

在上图中,sectionheader视图设置为正确的位置,tableview inset已设置为显示搜索字段。

enter image description here

你可以在第二个截图中看到,由于43像素的tableview插图,headerview的上限被设置得较低,因为它应该粘在屏幕顶部隐藏“相关”单元格并在发布时弹回。

我想我需要以某种方式抵消Inset,我只是不确定如何......

1 个答案:

答案 0 :(得分:6)

我假设你想要的是一个像Mail应用程序中的搜索字段;列表最顶部的搜索字段默认不可见?

解决方案不是使用contentInset,而是使用

  1. UISearchBar设置为tableviews tableHeaderView
  2. 还要向表视图控制器添加UISearchDisplayController
  3. 默认情况下,将contentOffset设置为44点,以隐藏搜索栏。
  4. Apple有一个很好的示例应用程序作为起点:http://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html