Я пытаюсь нарисовать контент в UIWebView
вместо UIView
, потому что мне нравится способность UIWebView
увеличивать и уменьшать масштаб, зажимая. Вот мой код:
// setup environment
CGRect outputRect = myWebView.bounds;
CFMutableDataRef data = CFDataCreateMutable(NULL, 0); // init with default allocator and unlimited size
CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData(data);
CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, &outputRect, NULL);
CGPDFContextBeginPage(pdfContext, NULL);
// draw something
CGContextSetRGBFillColor (pdfContext, 1, 0, 0, 1);
CGContextFillRect (pdfContext, CGRectMake (0, 0, 200, 100 ));
CGContextSetRGBFillColor (pdfContext, 0, 0, 1, .5);
CGContextFillRect (pdfContext, CGRectMake (0, 0, 100, 200 ));
CGPDFContextEndPage(pdfContext);
// load drawing in webView
[myWebView loadData:(NSData *)data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
// cleanup
if(data != NULL) CFRelease(data); // always make sure to not pass NULL in CFRelease
CGDataConsumerRelease(dataConsumer);
CGContextRelease(pdfContext);
За UIWebView
происходят другие вещи, которые я хочу видеть, поэтому я сделал фон UIWebView
прозрачным, вот так:
myWebView.opaque = NO; //otherwise setting background color has no effect
myWebView.backgroundColor = [UIColor clearColor];
Это работает правильно, если я не загружаю PDF. Однако, когда файл PDF загружается, его страница имеет белый фон и тень, как на скриншоте ниже. Это портит мой дизайн пользовательского интерфейса. Как я могу избавиться от тени и сделать страницу PDF прозрачной?
Спасибо