1

我在我的UITableView使用中添加了一个子视图:

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

我的笔尖UIImageView里面有一些文字和透明背景。

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

我想做的是改变底层表的 alpha 使其变暗但不影响覆盖子视图的 alpha。如果我使用:

[self.view setAlpha:(CGFloat)];

它也会使覆盖层变暗。我好像有心理障碍。

4

1 回答 1

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 视图的一部分,它会在您显示该视图时出现,并在您隐藏该视图时消失。

于 2012-01-10T15:43:56.787 回答