gpt4 book ai didi

objective-c - ios- uiscrollview 中的 pdf 生成

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:31 25 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我在 ScrollView 中列出了一些数据。单击按钮时,页面中的数据将以 pdf 文件格式生成。以下是一些代码。

- (void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];

// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();

// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[aView.layer renderInContext:pdfContext];

// remove PDF rendering context
UIGraphicsEndPDFContext();

// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];

// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}

从上面的代码中,我能够生成一个 pdf 文件,但我面临以下问题。 如果我有超过 50 条数据,在我的应用程序中我只能看到前 10 条数据,要查看其他数据我需要滚动它们。在这种情况下,当生成 pdf 文件时,它只获取前 10 个数据,而不获取其他数据。如何获取其他数据

最佳答案

renderInContext: 只会呈现您当前看到的内容 - UIScrollView 很智能,只会在层次结构中显示您现在需要的 View 。您需要一个 for 循环来手动滚动和重绘。这可能很难做到正确,也许在滚动后手动调用 [aView layoutSubviews] 以强制 scrollView 立即重新排列 subview 。

关于objective-c - ios- uiscrollview 中的 pdf 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com