brow-leaves-67b10edを使用して、UIViewでPDFをレンダリングしました。UIViewでレンダリングされたPDF内のテキストの検索と強調表示
私の必要性は、テキストを検索し強調表示することです。
私はUIViewでテキストの正確な位置を取得することができました。 UIViewは、葉アニメーションをサポートするための多くのレイヤーで構成され、ページはイメージにキャッシュされ、これらのレイヤーに描画されます。実際の問題が発生します。私はできないすべてのレイヤの上に検索された位置に塗りつぶした長方形を描きたい。 UIViewのsetsneedRectを呼び出すと、drawRectが呼び出されますが、rectangleは描画されず、CALayerのsetneedsRectはdrawLayer:inContextを呼び出しません。できるだけ早くお返事ください。 ありがとうございます。私はsetNeedsDisplayと呼ばれるので
..私はラインの下に追加
[super setNeedsDisplay];
[searchLayer setNeedsDisplay];
..しかし、まだ何も起きていないようにみえ:inContextを:EDIT
は今のコードはdrawLayerを呼んでいますCALayer(searchLayer)のコンテキストは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);
}
}
助けてもらえますか?
がどのようにPDFのページにテキストの開始位置を取得している葉..あなたが検索テキストをハイライト表示したい場合のUIViewを使用しないように、お勧めしますか? – Eimantas
@エマンタス私は他のファイルのものを手に入れています。たくさんあります。しかし、葉なしのものを使っているなら、私は正確な位置を得ています。 – DivineDesert
これは役立つかもしれない: [類似した質問への回答] [1] [1]:http://stackoverflow.com/questions/4737305/how-to-search-text-in- pdf-document-with-quartz/4738888#4738888 –