0

我有一个滚动视图,其中包含一个视图,我在其中放置了成对的背景颜色图像视图和图像图像视图。我使用它为我的用户提供一个简单的滚动来选择要传输到主图像视图显示的图像。

我将滚动视图背景颜色设置为浅灰色,alpha 0,5,视图设置为 clearcolor,alpha 1,opaque=true,背景颜色图像设置为黑色或白色,alpha 1,opaque = true,图像是设置为 alpha 1,不透明=真。

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

不透明度继承

在此图像中,您可以在背景中看到主图像。浅灰色区域是滚动视图,不透明 = true,背景 = 浅灰色,alpha=0,9 顶部是 UIView,不透明 = true,背景 = 清晰,alpha =1 第一个拇指周围的黑暗区域是我的活动图像指示器,不透明 = true,背景 = 深灰色,alpha =1 其他拇指周围的白色区域(不可见)是我的非活动指示器,不透明 = true,背景 = 白色,alpha =1 包含拇指的图像视图不透明 =true , 背景白色, alpha =1

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

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

我已经在其他应用程序的其他地方看到过这样做,但是除了关于这个参数的作用的简单说明之外,我找不到关于如何实现它的简单说明,因为我的做法肯定是错误的。

欢迎任何建议。

问候克里斯 H

4

1 回答 1

2

这是一个相当普遍的问题,因为人们没有预料到在视图上设置 alpha 会影响子视图的渲染。在您的情况下,这将非常容易解决,因为您只希望背景颜色不透明。您可以轻松设置背景颜色的 alpha,它不会影响视图的子视图。

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

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

[[UIColor darkGrayColor] colorWithAlphaComponent:0.5]

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

在此处输入图像描述

于 2012-11-06T16:49:33.807 回答