如何在 TextView iOS 中对文本进行渐变?
How give gradient on text in TextView iOS?
我想在 UITextView 中对文本赋予渐变效果,当我尝试使用渐变层时,它应用于完整的 textview 背景。我只是希望它应用于文本和背景颜色应该分开。
我想要这样的输出:
它的到来是这样的:
有人可以建议如何在 UITextView 上实现像第一张图片那样的输出
我正在专门寻找 UITextView 的解决方案,而不是 UILabel 或 UIView
实现此目的的最简单方法是在 UILabel 或 UITextView 上创建具有所需渐变的 UIView,然后在 textView 上屏蔽渐变 UIView。
有一个很好的教程here。
您可以为文本创建图案颜色。因此,您可以将此颜色应用于任何文本组件(如标签、文本视图、按钮等)。
请检查以下示例。您可以在 getGradientLayer() 方法中自定义您的颜色模式。
func gradientColor(bounds: CGRect, gradientLayer :CAGradientLayer) -> UIColor? {
//We are creating UIImage to get gradient color.
UIGraphicsBeginImageContext(gradientLayer.bounds.size)
gradientLayer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return UIColor(patternImage: image!)
}
func getGradientLayer(bounds : CGRect) -> CAGradientLayer{
let gradient = CAGradientLayer()
gradient.frame = bounds
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
return gradient
}
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
textView.font = UIFont.boldSystemFont(ofSize:50)
textView.textAlignment = .center
textView.text = "Hello World!"
let gradient = getGradientLayer(bounds: textView.bounds)
textView.textColor = gradientColor(bounds: textView.bounds, gradientLayer: gradient)
输出:-
我想在 UITextView 中对文本赋予渐变效果,当我尝试使用渐变层时,它应用于完整的 textview 背景。我只是希望它应用于文本和背景颜色应该分开。
我想要这样的输出:
它的到来是这样的:
有人可以建议如何在 UITextView 上实现像第一张图片那样的输出
我正在专门寻找 UITextView 的解决方案,而不是 UILabel 或 UIView
实现此目的的最简单方法是在 UILabel 或 UITextView 上创建具有所需渐变的 UIView,然后在 textView 上屏蔽渐变 UIView。
有一个很好的教程here。
您可以为文本创建图案颜色。因此,您可以将此颜色应用于任何文本组件(如标签、文本视图、按钮等)。
请检查以下示例。您可以在 getGradientLayer() 方法中自定义您的颜色模式。
func gradientColor(bounds: CGRect, gradientLayer :CAGradientLayer) -> UIColor? {
//We are creating UIImage to get gradient color.
UIGraphicsBeginImageContext(gradientLayer.bounds.size)
gradientLayer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return UIColor(patternImage: image!)
}
func getGradientLayer(bounds : CGRect) -> CAGradientLayer{
let gradient = CAGradientLayer()
gradient.frame = bounds
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
return gradient
}
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
textView.font = UIFont.boldSystemFont(ofSize:50)
textView.textAlignment = .center
textView.text = "Hello World!"
let gradient = getGradientLayer(bounds: textView.bounds)
textView.textColor = gradientColor(bounds: textView.bounds, gradientLayer: gradient)
输出:-