我使用的是开源PDF查看库(VFR PDF阅读器https://github.com/vfr/Reader)。我试图实施夜间模式"或黑色背景与白色文本。我可以获得我喜欢的任何颜色的背景但我无法改变文本颜色。您可以在" drawLayer"中找到https://github.com/vfr/Reader/blob/master/Sources/ReaderContentPage.m处修改背景颜色的位置。方法。它只是改变了PDF渲染矩形的颜色。
我的问题是:我可以对" context"做些什么。这会导致pdf中的文字改变颜色(在我的情况下,我想要白色文字)?有问题的行看起来像这样(第558行):
CGContextDrawPDFPage(context, _PDFPageRef); // Render the PDF page into the context
答案 0 :(得分:1)
以下是我解决夜视的方法:
1)我在NSUserDefault
中跟踪用户偏好(夜间模式或日间模式)2)in
- (void)drawLayer:(CATiledLayer *)layer inContext:(CGContextRef)context
{
a)检索用户偏好
NSString *userViewMode = [[NSUserDefaults standardUserDefaults] objectForKey:@"DayOrNightSetting"];
b)将CGContextRef的背景颜色设置为白色
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
c)用:
替换CGContextDrawPage(Context,_PDFPageRef)if ([userViewMode isEqualToString:@"Night"]) {
CGContextSetBlendMode(context, kCGBlendModeDestinationAtop);
CGContextDrawPDFPage(context, _PDFPageRef);
CGContextSetBlendMode(context, kCGBlendModeExclusion);
CGContextDrawPDFPage(context, _PDFPageRef);
}
else
{
CGContextSetBlendMode(context,kCGBlendModeNormal);
CGContextDrawPDFPage(context, _PDFPageRef);
}