2011-09-16 18 views
4

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); 
} 

} 

助けてもらえますか?

+0

がどのようにPDFのページにテキストの開始位置を取得している葉..あなたが検索テキストをハイライト表示したい場合のUIViewを使用しないように、お勧めしますか? – Eimantas

+0

@エマンタス私は他のファイルのものを手に入れています。たくさんあります。しかし、葉なしのものを使っているなら、私は正確な位置を得ています。 – DivineDesert

+0

これは役立つかもしれない: [類似した質問への回答] [1] [1]:http://stackoverflow.com/questions/4737305/how-to-search-text-in- pdf-document-with-quartz/4738888#4738888 –

答えて

1

これは、リーフビューで不適切なレイヤーを埋める問題でした。私は適切なレイヤーの位置でそれらを追加しようとし、それが行われます。

しかし、私はない、少なくともビュー

関連する問題