[英]How can I add a UIView above viewable area of a UITableView?
我知道有一個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];
由於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];
這里最好的解決方案是將您的視圖添加到標題中,正如您在嘗試時提到的那樣,然后在控制器的viewDidLoad中以編程方式向下滾動tableview,直到隱藏了您想要隱藏的標題視圖。 這可以通過多種不同方式完成。 最簡單的可能是:
[self.tableView setContentOffset: CGPointMake(0, myHeaderHeight)];
只需要一個0高的標題視圖,然后將其子視圖定位為負y,以便子視圖的底邊是視圖的頂部。
UIWindow* window = [[UIApplication sharedApplication].delegate.window;
[window addSubview: your-overlayview];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.