如何在UITableView的可视区域上方添加UIView?

Nic*_*ard 8 iphone sdk uitableview ios

我知道有一个tableHeaderView属性,但是当我将视图添加到它时,它不会隐藏在滚动区域上方.

我希望拥有的是,当您拉下桌面视图并按住并看到我的UIView进入视图时,我的自定义视图会显示出来.这是在许多应用程序上完成的,用于放置徽标或稍微隐藏,直到用户拉下桌面视图(下拉时Twitter/Facebook).

我目前正在使用以下内容,并没有将其排除在视图之外:

    UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 20)];
    l.text = @"Hidden Text";
    l.textColor = [UIColor redColor];
    self.tableView.tableHeaderView = l;
    [l release];
Run Code Online (Sandbox Code Playgroud)

And*_*scu 13

由于UITableView实际上是具有一些额外功能的UIScrollView,因此您可以使用它contentInset来获得所需的效果.诀窍是为顶部插图使用负值.这通常会隐藏您的标题视图,但在表格反弹时仍然可以查看.

因此,在将标签添加到标题视图后,只需像下面这样设置contentInset:


    UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 20)];
    l.text = @"Hidden Text";
    l.textColor = [UIColor redColor];
    self.tableView.tableHeaderView = l;

    //add this
    [self.tableView setContentInset:UIEdgeInsetsMake(-l.bounds.size.height, 0.0f, 0.0f, 0.0f)];

    [l release];
Run Code Online (Sandbox Code Playgroud)