UIWebView 배경이 Clear Color로 설정되어 있지만 투명하지 않습니다.


140

iOS SDK 최신 버전과 XCode 4.2를 사용하여 iOS 4 응용 프로그램을 개발 중입니다.

내가 가진 XIB이 UIWebView알파 = 1.0 , 배경 으로 설정 클리어 컬러불투명가 설정되어 있지 않습니다. 이 XIB 에서이 코드를 사용하여 이미지를 배경으로 설정했습니다.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"AboutBackground.png"]];
        self.view.backgroundColor = background;
        [background release];
    }
    return self;
}

UIWebView정적 HTML을 보이고있다 :

<html><head></head><body style=\"margin:0 auto;text-align:center;background-color: transparent; color:white\">...</body></html>

iOS 5 시뮬레이터에서는 배경이 투명하지만 iOS 4 기기에서는 회색입니다.

실마리?


인터페이스 빌더의 webview에 UIImageView를 넣고 이미지를 설정하십시오.
Stas

답변 주셔서 감사하지만 웹보기는 전체 화면을 채우지 않습니다.
VansFannel

답변:


360

또한 설정 :

[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];

3
loadHTMLString을 호출 한 후 배경색과 불투명도를 설정 한 경우에만 작동합니다. loadHTMLString이 두 값을 모두 재설정하는 것처럼 보입니다.
Justin Anderson

1
질문은 iOS에 대한 것이지만 OSX의 경우이 질문과 답변문제를 해결하고 iOS 사용자도 도울 수 있습니다.
Volomike

이 솔루션은 여전히 ​​iOS 12.1, Xcode 10.1 및 Swift에서 작동합니다.
Bhavin_m

15
     /*for ios please set this*/

     [webViewFirst setOpaque:NO];

     /*for html please set this*/
     <body style="background:none">

9

웹뷰의 배경을 선명한 색상으로 설정하는 것 외에도 불투명을 false로 설정해야합니다.


답변 해 주셔서 감사합니다. 그러나 인터페이스 빌더에서 불투명이 설정되어 있지 않습니다.
VansFannel

[super viewDidLoad : animated];를 호출 한 후 설정해보십시오. .
Elegia

안녕하세요, 같은 문제가 있습니다 .ios5에서는 작동하지만 ios4에서는 회색 배경입니다. 어떻게 해결 했습니까?
user542584


3

이 코드를 사용해 볼 수 있습니다 (안전하지는 않지만 ios5에서도 작동합니다).

- (void)makeBodyBackgroundTransparent {
        for (UIView *subview in [webView subviews]) {
            [subview setOpaque:NO];
            [subview setBackgroundColor:[UIColor clearColor]];
        }
        [webView setOpaque:NO];
        [webView setBackgroundColor:[UIColor clearColor]];
}


3
NSString *content=@"example clear background color UIWebview";
NSString *style=[NSString stringwithformat:@"<html><head><style>body {background-color:transparent;}</style></head><body>%@</body></html>",content];
[myWebview loadhtmlstring:style baseurl:nil];

1

목적을 위해

webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];

이것을 HTML 코드에 포함 시키십시오 :

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

또는

 <body style="background:none">

0

최신 스위프트 버전 (필요한 경우) :

lazy var webView: UIWebView = {
    let view = UIWebView()
    view.delegate = self
    view.backgroundColor = .clear
    view.isOpaque = false
    return view
}()

필요하지 않은 경우 델리게이트 라인 제거

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.