0

ユーザーがpdfを読み込んでページごとに表示し、注釈を付けることができるアプリを作成しています。ユーザーは、さまざまな色で画面に描画したり、画面にテキストフィールドを配置してテキストを配置したりできます。

PDF 用に 1 つのビューと、注釈用に 1 つのビューがあります。作成された UITextViews は、注釈ビュー (コードの theDrawingView) のサブビューとして追加されます。これらのテキスト ビューはアプリケーション内で正常に表示されますが、注釈を含めるために PDF が生成されると、テキスト ビューは表示されません (他のすべての注釈は表示されます)。

独自の境界と他のビューが使用している境界の両方で textView の drawRect を呼び出そうとしましたが、どちらも機能しませんでした。図面ビューの唯一のサブビューはテキストビューです。

pdfを生成するために描画を行う場所は次のとおりです。

for (int i = 0; i < numPages; i++) {
    UIGraphicsBeginPDFPage();

    //set the current pages of the views to get each page

    [self nextPage];

    [thePDFView drawRect:bounds];
    [theDrawingView drawRect:bounds];
    for(UITextView *txt in [theDrawingView subviews]){
        [txt drawRect:txt.bounds];
    }
}

UIGraphicsEndPDFContext();

テキストビューをpdfコンテキストに描画する方法についてのアイデアはありますか? ありがとう

編集: もともと UITextFields を使用していましたが、別の問題を解決するために、代わりに UITextViews に切り替える必要がありました。UITextViews も、生成された pdf には表示されません。

4

1 に答える 1

1
for (int i = 0; i < numPages; i++) {
UIGraphicsBeginPDFPage();

//set the current pages of the views to get each page

[self nextPage];

[thePDFView drawRect:bounds];
[theDrawingView drawRect:bounds];
for(UITextView *txt in [theDrawingView subviews]){
    NSString *textToDraw = txt.text; 
    UIFont *font = txt.font; 
    CGRect renderingRect = txt.frame;

    [textToDraw drawInRect:renderingRect withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentLeft];
}

それをもう少しうまくフォーマットするために、UITextView が生成されたときに PDF にレンダリングされるようにするコードを次に示します。このメソッドは、任意の文字列オブジェクトをレンダリングするために機能するように見えるので、UILabels または UITextFields でもうまく機能すると確信しています。動的な高さに簡単に適応できるため、UITextiew を使用しました。

于 2012-07-26T01:22:09.447 に答える