我知道有一个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];
答案 0 :(得分: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];
答案 1 :(得分:1)
这里最好的解决方案是将您的视图添加到标题中,正如您在尝试时提到的那样,然后在控制器的viewDidLoad中以编程方式向下滚动tableview,直到隐藏了您想隐藏的标题视图。这可以通过多种不同方式完成。最简单的可能是:
[self.tableView setContentOffset: CGPointMake(0, myHeaderHeight)];
答案 2 :(得分:0)
只需要一个0高的标题视图,然后将其子视图定位为负y,这样子视图的底边就是视图的顶部。
答案 3 :(得分:0)
UIWindow* window = [[UIApplication sharedApplication].delegate.window;
[window addSubview: your-overlayview];