2014-09-15 4 views
5

Sto utilizzando UIWebview, ma in Ios8 c'è uno sfondo nero dietro la visualizzazione web. Lo stesso funziona perfettamente con iOS7. Ho anche reso opaco a NO.UIWebView Sfondo trasparente in ios8

+0

La stessa domanda qui: http://stackoverflow.com/questions/25813551/rendering-pdf-in-uiwebview-ios-8-causes-a-black-border-around-pdf – Boris

risposta

-1
Put a instance variable in the in the header file or your class: 

// instance variable for interval timer 
NSTimer *BackgroundIntervalTimer; 
Put these methods in the implementation file: 

- (void)startUIWebViewBackgroundFixTimer { 
    // if > iOS 8 start fixing background color of UIWebPDFView 
    if (!SYSTEM_VERSION_LESS_THAN(@"8.0")) { 
     // hide pdfWebView until background fixed 
     self.pdfWebView.alpha = 0.0; 
     // start interval timer 
     BackgroundIntervalTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(fixBackground) userInfo:nil repeats:YES]; 
    } 
} 

- (void)stopUIWebViewBackgroundFixTimer { 
    [BackgroundIntervalTimer invalidate]; 
    BackgroundIntervalTimer = nil; 
} 

- (void)fixBackground { 
    // stop timer interval 
    [self stopUIWebViewBackgroundFixTimer]; 

    // Assuming self.webView is our UIWebView 
    // We go though all sub views of the UIWebView and set their backgroundColor to white 
    UIView *v = self.pdfWebView; 
    while (v) { 
     //v.backgroundColor = [UIColor whiteColor]; 
     v = [v.subviews firstObject]; 

     if ([NSStringFromClass([v class]) isEqualToString:@"UIWebPDFView"]) { 
      [v setBackgroundColor:[UIColor whiteColor]]; 

      // background set to white so fade view in and exit 
      [UIView animateWithDuration:0.25 delay:0.0 options:UIViewAnimationOptionCurveEaseOut 
          animations:^{ 
           self.pdfWebView.alpha = 1.0; 
          } 
          completion:nil]; 
      return; 
     } 
    } 
    // UIWebPDFView doesnt exist yet so exit and try later 
    [self startUIWebViewBackgroundFixTimer]; 
} 
Now put this line right after the line where you load the pdf: 

// if iOS 8 check if pdfWebView got subview of class UIWebPDFView 
[self startUIWebViewBackgroundFixTimer]; 
0

Prova ad aggiungere UIWebview come sottomenu a livello di codice.

WebView = [[UIWebView alloc]initWithFrame:CGRectMake(264, 10, 745, 576)]; 
    WebView.userInteractionEnabled = YES; 
    [self setBorderToView: WebView]; 
    WebView.scrollView.bounces = NO; 
    [WebView setBackgroundColor:[UIColor clearColor]]; 
    [WebView setOpaque:NO]; 
    [WebView loadHTMLString: embedHTML baseURL: nil]; 
    [self.view addSubview: WebView]; 

Spero che questo ti aiuti!

0

Ho anche affrontato lo stesso problema, dopo non aver ottenuto la soluzione corretta ho fatto un trucco usando Masking.

 CALayer *aLayer = [CALayer layer]; 
     aLayer.backgroundColor = [UIColor blackColor].CGColor; 
     aLayer.frame = CGRectMake(origin.x, origin.y, widthOfVideo, heightOfVideo); 
     objWebView.layer.mask = aLayer; 

E questo ha funzionato per me. Spero che possa esserti utile.