【问题标题】:UITableView w/ translucent section headers & different colored section backgroundsUITableView w/半透明部分标题和不同颜色的部分背景
【发布时间】:2011-08-30 10:05:09
【问题描述】:

我正在尝试设置一个 UITableView,其元素分层如下:

具体来说,表格有多个部分,每个部分都有不同的背景颜色。为此,我通常只需修改每个单元格。困难的部分是我希望部分标题是半透明的。当我这样做时,当标题下没有单元格时,标题下的背景是表格视图的背景颜色。我当然可以设置表格视图的背景颜色,但是每个标题下的颜色都是一样的。

如何创建如图所示的表格视图?

更新:为了清楚起见,我知道如何制作自定义标题视图,并且知道如何使用 alpha 属性使其半透明。问题在于视图下的内容。我需要下面的内容作为部分的背景颜色,而不是表格视图的背景颜色。

【问题讨论】:

    标签: cocoa-touch ios uitableview


    【解决方案1】:

    没有为此提供确切的框架解决方案,但我们可以使用backgroundView 属性。将其设置为滚动视图。此滚动视图将包含部分的背景视图。将自己定义为 table view 的 contentSizecontentOffset 的观察者,并更改与 table view 平行的滚动视图的值。使用rectForSection: 方法为您的背景视图获取框架矩形,并使用适当的背景颜色设置为滚动视图创建子视图。这应该在一定程度上起作用。

    这种方法的问题在于,当表格视图在边缘反弹时,滚动视图将保持静态。然后是让细胞与这个背景很好地融合的情况。

    【讨论】:

    • 这是一个创造性的解决方案。我会到处玩,看看我能做些什么。谢谢!
    【解决方案2】:

    在标题中使用 UIImageView 并使用(自定义)图像。

    - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section           {
    
          UIView * junkView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerImageBackground.png"]];
          junkView.alpha = .3;
          [junkView autorelease];
          return junkView;
     }
    

    【讨论】:

    • 不会在标题下放置一个图像视图来掩盖通过它下面的单元格吗?这将打败它们最初是半透明的原因......或者我错过了什么?
    • 啊,好吧,我玩了一下。如果您将 imageView 放在标题中,您可能需要使用它的 .alpha 属性来获得您想要的效果。查看编辑后的答案。
    • 为命名点赞!
    猜你喜欢
    • 2023-03-04
    • 2013-01-03
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多