Domanda

Mi piacerebbe aggiungere un Web View per la mia app a 60% scala (come visto in Safari nel browse vista altre finestre):

alt text

Si noti come il contenuto sembra bello e alias!

Se provo e aggiungi la stessa vista Web per la mia app:

NSURL *url = [NSURL URLWithString:@"http://www.google.co.uk?q=hello"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
webView.delegate=self;
[webView loadRequest:request];  
[self.view addSubview:webView];

Utilizzando la seguente trasformazione:

[webView setTransform:CGAffineTransformMakeScale(0.6, 0.6)];

alt text

.. la scala è davvero una cattiva qualità e non ci sembra essere senza anti-aliasing.

Qualcuno sa perché questo sta accadendo o di avere un suggerimento su come potrebbe essere risolto?

Grazie! Nick.

È stato utile?

Soluzione

ho capito una soluzione!

Prendere una fotografia della WebView, aggiungerlo a un UIImageView e ridimensionare che invece!

UIGraphicsBeginImageContext(webView.bounds.size);
[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(webView.bounds.x, webView.bounds.y, webView.frame.size.width, webView.size.height)];
imageView.image = viewImage;
[self addSubview:imageView];
[imageView release];

webView.hidden = YES;

Sembra funzionare bene!

Un punto da notare .. se si vuole fare questo, non appena il WebView è stato caricato, è necessario rinviare l'azione da un certo periodo (ho scelto un 10 ° di secondo!)

In questo modo:

-(void)deferLoading
{
    webViewHasActuallyLoaded = YES;
    [self setNeedsLayout];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [NSTimer scheduledTimerWithTimeInterval: 1.0/10.0 target:self selector:@selector(deferLoading) userInfo:nil repeats:NO];
}

Saluti per i suggerimenti abovee! Nick.

Altri suggerimenti

Perché non basta fare la visualizzazione Web più piccolo? Dovrebbe rendere il contenuto di alta qualità al formato più piccolo.

Se avete bisogno di animare la modifica delle dimensioni, è possibile impostare il minificationFilter sul layer della vista web per ottenere qualità ragionevole:

[[webView layer] setMinificationFilter:kCAFilterLinear];

Nel vostro esclusione UIViewController

  • (nulli) placeViewItems: (UIInterfaceOrientation) interfaceOrientation

E fare i vostri valori frame.origin.x & interi frame.origin.y di UIWebView. Vedere se questo è il risultato che si sta cercando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top