【发布时间】:2017-10-21 16:51:29
【问题描述】:
所以我有一个UILabel,它被绘制在渐变图像之上(即UIImageView)。它看起来有点像这样:
我正在尝试在UILabel 的draw(_ rect: CGRect) 函数中更改图形上下文的blendMode,以便它绘制标签但使用softLight 混合模式与背景混合。
这是我想要的样子:
这是我在draw(_ rect: CGRect) 函数中的代码:
override func draw(_ rect: CGRect) {
// Drawing code
if let context = UIGraphicsGetCurrentContext() {
context.setBlendMode(.softLight)
self.textColor.set()
self.drawText(in: rect)
}
}
此代码仅呈现顶部图片,而不是混合版本。这不是我尝试过的全部,我尝试了很多其他的东西,但我就是不明白 CGContext 的特别是 draw 函数。
关于 SO 的大多数答案要么在旧的 Objective-c 中,要么被弃用/损坏,要么快速且过于复杂(例如使用 Metal)。我只想在我拥有的上下文中绘制文本并将上下文的混合模式设置为柔光。必须有一个简单的方法!
任何有关如何解决此问题的帮助将不胜感激。谢谢!
【问题讨论】:
标签: ios swift core-graphics cgcontext blending