所以我有一个带有UIImage的UICollectionViewCell,我试图让UIImage有一个纯白色的背景,文本覆盖在它上面。我搜索了如何单独完成这些操作,这就是我所拥有的:
使用纯色创建UIImage:
/user_code/node_modules/firebase-admin/lib/database/database.js
然后我用:{/ p>调用函数let rect = CGRect(origin: .zero, size: CGSize(width: 1, height: 1))
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0)
let color = UIColor.white
color.setFill()
UIRectFill(rect)
let whiteImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
textToImage
let textImage = textToImage(drawText: "Placeholder text", inImage: whiteImage, atPoint: CGPoint(x: 20.0, y: 20.0))
函数的位置:
textToImage
然后将textImage设置为UICollectionViewCell的UIImage。
textToImage函数适用于普通图像,但如果我尝试先创建一个纯色图像,然后尝试在新创建的图像上调用textToImage,则显示纯色但文本不显示。关于这可能是什么问题的任何建议?谢谢!
答案 0 :(得分:0)
一些问题。你的主要原因是whiteImage
只有1x1分。因此,当您将其传递给textToImage
时,您将创建一个新的1x1图像。在如此小的图像上很难阅读文字。
使用更有用的尺寸创建whiteImage
,事情会好得多。
let rect = CGRect(origin: .zero, size: CGSize(width: 600, height: 300)) // pick a useful size
您还应该更改:
UIGraphicsBeginImageContext(image.size)
为:
UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
答案 1 :(得分:0)
即使您确实需要捕获该图像并使用它执行某些操作,iOS也可以很容易地截取UIView。 Here是相关链接。