彩色打印预览不显示 UILabels

Color print preview not showing UILabels

在 iPad 打印预览中未显示 UILabel。当我放大打印预览时,它会正确显示。当我将 UILabel opaque 属性 更改为 true 时,它会将 UILabel 的背景更改为黑色并在打印预览中显示。这是我用来显示打印预览的代码。

let printController = UIPrintInteractionController.shared
let printInfo = UIPrintInfo(dictionary:nil)
printInfo.outputType = UIPrintInfoOutputType.general
printInfo.jobName = "Print"
printInfo.duplex = UIPrintInfoDuplex.none
printInfo.orientation = UIPrintInfoOrientation.portrait

printController.printPageRenderer = nil
printController.printingItems = nil
printController.printingItem = printUrl

printController.printInfo = printInfo
printController.showsNumberOfCopies = true
printController.showsPaperSelectionForLoadedPapers = true

printController.present(animated: true, completionHandler: nil)

当我将 UIPrintInfoOutputType.general 更改为 UIPrintInfoOutputType.grayscale 时,它将显示 UILabel,但我需要彩色打印。灰度仅适用于黑白打印。

我尝试了很多方法来解决我的问题,终于找到了解决办法。

我把UILabel的opaque属性改成了true,然后把UILabel的背景色改成了白色。问题是,UILabel 的背景颜色是 Default。因此,在打印预览中,UILabel 的背景显示为黑色。如果 UILabel 的背景颜色是 DefaultClear Color 它将在打印预览中显示为黑色。

printLabel.isOpaque = true
printLabel.backgroundColor = UIColor.white //Not Default or Clear Color