iPhone 子视图可以透明吗?
Posted
技术标签:
【中文标题】iPhone 子视图可以透明吗?【英文标题】:iPhone Can subview be transparent? 【发布时间】:2012-03-12 15:33:51 【问题描述】:我有主视图,并在其中添加了子视图。我将子视图的背景设置为半透明,但子视图以纯色绘制。我什至尝试将 opaque 设置为 NO。
detailsView.opaque = NO;
detailsView.backgroundColor = UIColorMakeRGBA(0, 0, 100, 100);
我可以通过 alpha 属性使 vsubview 透明(但子视图上的所有东西也都是透明的),但我真的只想将背景颜色设置为半透明。
【问题讨论】:
UIColorMakeRGBA
是你定义的函数吗?如果是,您可以发布它的代码或确认它看起来像我的答案中的代码吗?
是的,它是用户定义的函数,你不是我的……问题是我认为 alpha 也被 255 分割。
【参考方案1】:
将alpha
设置为colorWithRed:green:blue:alpha method
中的所需值
detailsView.backgroundColor = [UIColor colorWithRed:0/255.0f
green:30/255.0f
blue:160/255.0f
alpha:0.5f];
【讨论】:
【参考方案2】:我不知道 UIColorMakeRGBA
函数,但在我看来,您正在创建 alpha 为 1 的完全蓝色,因此它不应该是透明的。尝试将背景颜色线设置为
detailsView.backgroundColor = UIColorMakeRGBA(0, 0, 100, 50);
或者只使用[[UIColor blueColor] colorWithAlphaComponent:0.5f];
【讨论】:
【参考方案3】:我假设UIColorMakeRGBA
是您已经实现的功能。在这种情况下,我敢肯定,它看起来像这样:
#define UIColorMakeRGBA(redValue, greenValue, blueValue, alphaValue) [UIColor colorWithRed:(redValue)/255.0f green:(greenValue)/255.0f blue:(blueValue)/255.0f alpha:(alphaValue)]
请注意,alpha 不会除以255.0
,因此您应该为该参数使用介于0.0
和1.0
之间的值,而不是100
。如果你使用 100,你最终会得到一个 alpha 等于1.0
的颜色。
detailsView.backgroundColor = UIColorMakeRGBA(0, 0, 100, 0.5f);
【讨论】:
以上是关于iPhone 子视图可以透明吗?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone:如何在捏缩放uiscrollview时重绘子视图