我正在尝试降低消息发送之前的质量,例如,如果连接较差,我想模糊显示UITextView中的文本,如果连接改善或互联网恢复正常,请删除模糊并显示UITextView中的普通文本。我尝试使用CATextLayer不起作用。有没有办法可以做到这一点?

cell.messageTextView.text = theText

let textLayer = CATextLayer()
textLayer.string = cell.messageTextView.text
textLayer.contentsScale = 0.2
cell.messageTextView.layer.addSublayer(textLayer)


ios - 如何使用Swift降低UITextView中文本的质量-LMLPHP

最佳答案

您可以通过对其进行栅格化并减小其比例来降低该层的质量:

let badQualityRatio: CGFloat = 4
textView.layer.shouldRasterize = true
textView.layer.rasterizationScale = UIScreen.main.scale/badQualityRatio


结果:

ios - 如何使用Swift降低UITextView中文本的质量-LMLPHP

您可以将rasterizationScale设置为0到UIScreen.main.scale之间的任意数字

09-04 23:25