7

我在iOS 6. 有没有一种简单的方法可以使屏幕上的所有内容变暗(即添加更暗的色调),UIViewController除了少数几个 select UIImageViews

就像,目标是使非变暗图像脱颖而出。用户清楚地知道这些是唯一有效或可选择UIImageViews点击的 - 当用户点击有效UIImageView时,屏幕将恢复正常。

澄清一下,我不想让其他所有东西都消失,只是让它变暗,就像添加一个透明的 0.5 alpha 层。

我看这里:Darken view as if disabled,它似乎非常相关,除了我不是在处理一个UIImageView,而是一个UIViewController作为UIImageViews子视图的。即使我在我的超级视图中的每个子视图上运行屏蔽代码,我认为它仍然不会覆盖整个屏幕。

谢谢你的帮助。

4

2 回答 2

11
UIView *blackView = [[UIView alloc] initWithFrame:someFrame];
blackView.backgroundColor = [UIColor blackColor];
blackView.alpha = 0.5;
[self.view addSubview:blackView];
for (UIImageView *imageViewToShow in self.view.subviews) {
    [self.view bringSubviewToFront:imageViewToShow];
}

如果这会导致问题,您可能会考虑重新设计代码以将图像保留在各种 containerView 中。然后你可以简单地使用[self.view insertSubview:blackView belowSubview:containerView];。然后,您可以随时操作 blackView 的 alpha 和隐藏方面。哎呀,如果您的设计允许,您可以在创建任何图像之前添加 blackView 省略容器视图的meed ...

于 2013-11-08T08:50:27.547 回答
0

您可以使用:

[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]; 
// This is a transparent black color. 
于 2015-09-04T19:52:11.067 回答