如何让半透明视图浮动在我的表视图上?

时间:2014-06-03 19:22:55

标签: ios uitableview

我试图在屏幕顶部创建一个摘要框,而在它下方则有一个表格视图。当您滚动桌面视图时,我希望它在整个框中可见但模糊,而不是像顶部的状态栏一样。

所以我创建了一个包含两个子视图的视图 - 一个用于摘要,另一个用于tableview,它可以工作。我已将摘要视图设置为透明,您可以在其后面看到表格视图。不幸的是,表格视图中的顶部单元格被遮挡了。

所以我的问题是 - 我可以添加一个垂直偏移量,以便顶部单元格从摘要框下面开始吗?

或者,有没有更好的方法来达到我想要的效果 - 当你向上和向下滚动时,一个盒子停留在桌子的顶部,并且是透明/半透明的?

2 个答案:

答案 0 :(得分:0)

将表视图的顶部内容插入设置为浮动视图的高度:

UIEdgeInsets insets = UIEdgeInsetsZero;
insets.top = floatingView.frame.size.height;
tableView.contentInset = insets;

UITableViewcontentInset继承UIScrollView属性。

答案 1 :(得分:0)

我无法真正告诉你的要求,但我认为你想要一个透明的固定标题。

Rob Mayoff的方式应该工作 - 将子视图添加到tableview,并将tableview的contentInsets设置为该子视图的高度应该是我认为你想要的。但我会建议一个替代方案 - 使用内置于UITableView控件的节头。

试试这个 - (一个具有一个部分的tableview的固定节头的非常基本的实现)

(确保您的UITableView的委托和dataSource设置为您的视图控制器)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 100;
}

- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView* view = [[UIView alloc] initWithFrame:(CGRect){0,0,320,100}];
    view.backgroundColor = [UIColor blackColor];
    view.alpha = 0.6;
    return view;
}