【问题标题】:Unable to make a programmatically created UIWebView transparent无法使以编程方式创建的 UIWebView 透明
【发布时间】:2011-09-20 08:46:27
【问题描述】:

我正在尝试以编程方式创建 UIWebView,我需要将其覆盖在另一个元素上,因此我的代码中有以下内容:

webViewScroller = [[UIWebView alloc] initWithFrame:CGRectMake(47, 80, 226, 310)];
webViewScroller.opaque = NO;
webViewScroller.backgroundColor = [UIColor clearColor];

最后两行非常适合在 Interface Builder 中创建透明的 UIWebView,但由于我想严格在代码中创建和销毁视图,所以我这样创建它。我期待它响应在 IB 或代码中创建的相同设置参数。我错过了一些简单的东西吗?我也尝试过遍历子视图并使它们透明,但我也没有任何运气。我猜测其中一个父视图不是不透明的,但我不确定如何引用它以使其不透明。我也试过这个:

[webViewScroller.layer setOpaque:NO];

[更新:] 我还在我的 HTML 中添加了 <body style="background-color:transparent;">。这不是问题,因为它是一个包含视图的父视图:当您滚动超出范围时,它位于“阴影”后面。

【问题讨论】:

    标签: iphone objective-c uiwebview transparency background-color


    【解决方案1】:

    为了结束这个问题,我自己回答。我从来没有找到解决这个特定问题的方法,所以我只是在 IB 中创建了 WebView,它就像我原来的帖子中提到的那样工作。

    感谢所有试图提供帮助的人。

    【讨论】:

      【解决方案2】:

      使用下面的来使 UIView 继承的类透明。根据您的要求设置alpha 的值。

      webViewScroller.alpha = 0.3f;
      

      【讨论】:

      • 这使得 webview(包括 HTML 内容)在灰色父视图之上变得透明......我希望使包含 UIWebView 的视图不透明。在 Interface Builder 中,您可以将背景设置为清晰,效果很好。必须有某种方法可以在代码中做同样的事情。谢谢!
      【解决方案3】:

      您还需要将 HTML 正文的背景颜色设置为透明才能正常工作。

      类似这样的东西(或通过在标题中使用样式标签):

      <body style="background-color:transparent;">
      

      【讨论】:

      • 感谢您的提醒,虽然我这样做没有效果。实际的 webview 是透明和不透明的,它只是不透明的父视图之一。
      猜你喜欢
      • 2012-09-17
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2012-03-23
      • 2013-06-18
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      相关资源
      最近更新 更多