如何将完整的 uicollectionview 打印到图像或 pdf
Posted
技术标签:
【中文标题】如何将完整的 uicollectionview 打印到图像或 pdf【英文标题】:How to print a full uicollectionview to an image or a pdf 【发布时间】:2016-08-03 16:13:13 【问题描述】:大家!
我正在使用 Swift 3,但如果 Swift 3 没有解决方案,我愿意使用 Swift 2。
我有一个 UICollectionView 和一个 UIImageView,它们与图像一起包含在 UIView 中(所有这些都包含在 UIScrollView 中,这意味着很多内容都在屏幕外)。如果我不知道如何用 UICollectionView 和 UIImageView 的全部内容打印出 UIView(或至少是 UICollectionView)的内容,我正在制作的应用程序将毫无用处。
我已经研究了一天,想出了我将在下面列出的资源,但我仍然不知道如何实现我的目标。有人对我有什么建议吗?
打印集合视图的一种可能替代方法是创建一个 PDF 或图像,其中包含集合视图中包含的信息(一个图像和每个单元格 3 个标签),而不必打印集合视图本身。如果您能指出一种方法来做到这一点,那将同样有帮助。
感谢您的宝贵时间!
我的研究结果:(堆栈溢出不会让我发布两个以上的链接,所以请原谅切碎的链接) Apple 文档:(我还无法理解这一点,但我正在努力弄清楚。) https://developer。 apple .com /library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GeneratingPDF/GeneratingPDF.html
疯狂的框架库,包括 pdf 生成器: github。 com /vsouza/awesome-ios#pdf
如何使用 swift 将 UIView 转换为图像:(我不知道这是否会截取页面上的内容,或者是否会截取整个视图。) How to convert a UIview to a image
苹果函数文档:(这是对上述***问题链接的补充。) 开发商。苹果。 com/library/ios/documentation/UIKit/Reference/UIKitFunctionReference/#//apple_ref/c/func/UIGraphicsGetImageFromCurrentImageContext
PDFGenerator:(这个最有潜力,但我还不知道怎么用。) https://github.com/sgr-ksmt/PDFGenerator
【问题讨论】:
【参考方案1】:PDFGenerator Features:
UIScrollView 支持:如果视图是 UIScrollView、UITableView、UICollectionView、UIWebView,则绘制整个内容。他们在 github 上也有一个演示应用程序。
示例字体:ScrollView:
func generatePDF()
let v1 = UIScrollView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0))
let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
let v3 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0))
v1.backgroundColor = .red
v1.contentSize = CGSize(width: 100.0, height: 200.0)
v2.backgroundColor = .green
v3.backgroundColor = .blue
let dst = URL(fileURLWithPath: NSTemporaryDirectory().appending("sample1.pdf"))
// outputs as Data
do
let data = try PDFGenerator.generated(by: [v1, v2, v3])
data.write(to: dst, options: .atomic)
catch (let error)
print(error)
// writes to Disk directly.
do
try PDFGenerator.generate([v1, v2, v3], to: dst)
catch (let error)
print(error)
【讨论】:
以上是关于如何将完整的 uicollectionview 打印到图像或 pdf的主要内容,如果未能解决你的问题,请参考以下文章
带有 UICollectionViewCompositionalLayout 的单行水平 UICollectionView 的不完整删除动画
iOS:`UICollectionview`,如何通过它的`indexPath`获取单元格的`contentoffset`
如果 UICollectionView 没有足够的单元格来填充一行,则使第一行不完整而不是最后一行
UICollectionView 在启用分页的情况下不会滚动完整的 320 点
如何将 UICollectionViewCell 从一个 UICollectionView 拖到另一个 UICollectionView?