2011-05-13 60 views
6

我正在更改我的tableviews contentInset,以便当用户滚动超出表格的上限时,tableview被嵌入以显示隐藏在tableView上方的UISearchBar。设置UITableView contentInset也会插入节标题视图

除了节标题视图,一切正常。向下滚动时,结合的sectionHeaderView的顶部是插图从屏幕作为我的tableview插图的顶部的距离相同,这里是它在起始位置:

Header view in correct position

在上述图像的sectionheader视图是设置为正确的位置,并且已经将tableview插入设置为显示搜索字段。

enter image description here

您可以在绑定的headerview的顶部设置,因为43像素的tableview插图,在那里,它应该坚持在屏幕的上方隐藏“相关”的低本次截图中看到细胞并在释放时反弹回来。

我想我需要以某种方式补偿的插图,我只是不知道如何..

+0

我面对完全一样的问题(尽管它不是一个隐藏搜索栏),并希望能找到答案 – romrom 2011-06-23 20:07:04

回答

6

我假设你想要的是一个搜索栏就像在邮件应用程序;列表最顶部的搜索字段默认情况下不可见?

解决的办法是不使用contentInset,而是:

  1. 设置一个UISearchBar作为tableviews tableHeaderView
  2. 另外添加一个UISearchDisplayController到表视图控制器。
  3. 默认情况下,将contentOffset设置为44点,隐藏搜索栏。

苹果具有很好的示例应用程序为起点,在这里:http://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html

+0

啊,是的当然,我很想知道这个 – Alex 2011-05-16 08:47:09

+4

这不是一个解决方案,这是一个解决方法。有几种情况下你想使用contentInset,这会导致很多问题。要解决这个问题,以下是一个更好的解决方案:http://b2cloud.com.au/how-to-guides/uitableview-section-header-positions – strange 2014-03-03 23:47:53

+0

@strange您应该发布一个新的顶级答案,描述这种技术,因为对于许多人来说,这是一个有效的答案,试图找出如何做到这一点。 – erikprice 2017-10-23 12:33:11