0

我正在制作一个应用程序,用户可以在其中加载 pdf 并逐页查看并对其进行注释。用户可以在屏幕上绘制不同的颜色,也可以在屏幕上放置文本字段并放置其文本。

pdf 有一个视图,注释有一个视图。创建的 UITextViews 被添加为注释视图(代码中的绘图视图)的子视图。这些文本视图在应用程序中显示良好,但是当生成 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。我使用 UITextiews 是因为它们很容易适应动态高度。

于 2012-07-26T01:22:09.447 回答