我已使用brow-leaves-67b10ed在UIView中呈现PDF。
现在我的必要性是搜索和突出文本。
我已经设法在UIView上获得文本的确切位置。现在UIView由许多层组成,以支持叶子动画,页面也缓存在图像中,然后在这些图层上绘制。这里出现了实际问题。我想在所有图层顶部的搜索位置绘制一个填充矩形,这是我无法做到的。如果我为UIView调用setsneedRect,则调用drawRect但不绘制矩形,而CALayer的setsneedsRect不会调用drawLayer:inContext ..任何人都可以帮我如何继续?请尽快回复。 提前致谢。
修改
现在代码正在调用drawLayer:inContext: 我在下面加了一行..
[super setNeedsDisplay];
[searchLayer setNeedsDisplay];
但似乎仍然没有发生......
因为我为CALayer(searchLayer)调用了setNeedsDisplay,所以上下文将是CALayer。 这是我显示高亮显示的代码:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{
for (Selection *s in self.selections)
{
CGContextSaveGState(ctx);
CGContextConcatCTM(ctx, [s transform]);
CGContextSetFillColorWithColor(ctx, [[UIColor yellowColor] CGColor]);
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);
CGContextFillRect(ctx, [s frame]);
CGContextRestoreGState(ctx);
}
}
任何人都可以帮忙吗?
答案 0 :(得分:1)
这是在叶子视图中在不适当的图层中填充rect的问题。我尝试添加具有适当层位置的那些并完成。
但我建议,如果你想要突出显示搜索到的文字,不要使用UIView ..不要至少离开视图