IOS使用组不透明度控制

时间:2012-11-03 18:54:03

标签: ios opacity

我有一个滚动视图,其中包含一个视图,我将配对的背景颜色图像视图和图像图像视图放入其中。我使用它来为我的用户呈现一个简单的滚动,以选择要传输到主imageview显示的图像。

我将scrollview背景颜色设置为浅灰色,alpha 0,5,视图设置为clearcolor,alpha 1,opaque = true,背景颜色图像设置为黑色或白色,alpha 1,opaque = true和图像设置为alpha 1,opaque = true。

我遇到的问题是在app-info.plist中,我添加了“具有组不透明度的渲染”,但无论设置如何(是或否),背景和图像都会继承scrollview的不透明度。 / p>

opacity inheritence

在此图像中,您可以在背景中看到主图像。 浅灰色区域是scrollview,opaque = true,background =浅灰色,alpha = 0,9 最上面是UIView,opaque = true,background = clear,alpha = 1 第一个拇指周围的暗区是我的活动图像指示器,opaque = true,背景=深灰色,alpha = 1 其他拇指周围的白色区域(不可见)是我的非活动指示器,opaque = true,background = white,alpha = 1 包含拇指的imageview是opaque = true,background white,alpha = 1

但是,您可以通过拇指看到背景图像。我希望拇指完全不透明,灰色为alpha 0,5。目前的设置为0.9,因为这是我能做到的最好的。

此图像是在组不透明度设置为no的情况下拍摄的,但图像与设置为yes的组不透明度相同。

我已经在其他应用程序的其他地方看到过这种情况,但是除了关于这些参数的简单陈述之外,我找不到关于如何实现这一点的简单说明,因为我的工作方式肯定是错误的。

欢迎任何建议。

此致 克里斯H

1 个答案:

答案 0 :(得分:2)

这是一个相当常见的问题,因为人们不会预期在视图上设置alpha会影响子视图的呈现。在您的情况下,这将非常容易修复,因为您只希望您的背景颜色不透明。您可以轻松设置背景颜色的alpha,它不会影响视图的子视图。

首先将所有视图alphas设置为1.0。

其次将灰色背景颜色的不透明度设置为0.5。您可以在代码中创建颜色,如:

[[UIColor darkGrayColor] colorWithAlphaComponent:0.5]

或在IB中,通过单击检查器中的背景颜色并调整颜色选择器中的不透明度滑块:

enter image description here