【问题标题】:iPhone Can subview be transparent?iPhone 子视图可以透明吗?
【发布时间】:2012-03-12 15:33:51
【问题描述】:

我有主视图,并在其中添加了子视图。我将子视图的背景设置为半透明,但子视图以纯色绘制。我什至尝试将 opaque 设置为 NO。

detailsView.opaque = NO;
detailsView.backgroundColor = UIColorMakeRGBA(0, 0, 100, 100);

我可以通过 alpha 属性使 vsu​​bview 透明(但子视图上的所有东西也都是透明的),但我真的只想将背景颜色设置为半透明。

【问题讨论】:

  • UIColorMakeRGBA 是你定义的函数吗?如果是,您可以发布它的代码或确认它看起来像我的答案中的代码吗?
  • 是的,它是用户定义的函数,你不是我的……问题是我认为 alpha 也被 255 分割。

标签: iphone uiview opacity


【解决方案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.01.0 之间的值,而不是100。如果你使用 100,你最终会得到一个 alpha 等于1.0 的颜色。

      detailsView.backgroundColor = UIColorMakeRGBA(0, 0, 100, 0.5f);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多