使用透明子视图将表的alpha设置为UITableView

时间:2012-01-10 14:59:31

标签: iphone uitableview alpha-transparency

我使用以下内容在我的UITableView上添加了一个子视图:

TransparentViewController *tvc =
        [[TransparentViewController alloc] 
                initWithNibName:@"TransparentViewController" bundle:nil];
[self.view addSubview:tvc.view];

我的笔尖中有一个UIImageView,其中包含一些文字和透明背景。

当我第一次为表格加载detailView时,我会显示子视图,简要说明您可以在文本下方看到的信息。工作得很好。

我想要做的是改变底层表格的alpha值,使其更暗,但不会影响叠加子视图的alpha值。如果我使用:

[self.view setAlpha:(CGFloat)];

它也会使叠加层变暗。我似乎有精神障碍。

1 个答案:

答案 0 :(得分:1)

更改alpha也会影响子视图。你的tvc.view是self.view的子视图,所以它自然会受到影响。

为什么不试试这个:在tvc.view中放入另一个视图,然后将此视图发送到此视图。

(UIView*) back = [[UIView alloc] initWithFrame:CGFrameMake(...)];
back.backgroundColor = [UIColor grayColor]; // choose a color that you like;
back.alpha = 0.5; // whatever works for you
[tvc.view addSubview:back];
[tvc.view sendSubviewToBack:back];

将此新视图的大小和alpha设置为您喜欢的内容。表格视图将在有限的范围内显示,这可以完成您要做的事情。

由于这是我们的tvc视图的一部分,它会在您显示该视图时显示,并在您隐藏该视图时消失。