ios - 如何在 iOS 上仅向 UILabel 添加外部轮廓
解决方案
你可以继承 UILabel 来获得这个效果
public class StrokedLabel: UILabel{
internal var mOutlineColor:UIColor?
internal var mOutlineWidth:CGFloat?
@IBInspectable var outlineColor: UIColor{
get { return mOutlineColor ?? UIColor.clear }
set { mOutlineColor = newValue }
}
@IBInspectable var outlineWidth: CGFloat{
get { return mOutlineWidth ?? 0 }
set { mOutlineWidth = newValue }
}
override public func drawText(in rect: CGRect) {
let shadowOffset = self.shadowOffset
let textColor = self.textColor
let c = UIGraphicsGetCurrentContext()
c?.setLineWidth(outlineWidth)
c?.setLineJoin(.round)
c?.setTextDrawingMode(.stroke)
self.textColor = mOutlineColor;
super.drawText(in:rect)
c?.setTextDrawingMode(.fill)
self.textColor = textColor
self.shadowOffset = CGSize(width: 0, height: 0)
super.drawText(in:rect)
self.shadowOffset = shadowOffset
}
}
推荐阅读
- javascript - 如何在不同页面上显示本地存储中的内容
- java - JavaFX AudioClip:有什么方法可以同时播放更多声音?
- reactjs - 在 React Redux 存储中存储文件对象的最佳方式(从 DropZone 上传文件?)
- python - 在 python 中使用 kafka 流式传输推文
- javascript - 无法更新 componentDidUpdate 中的状态
- r - 在 R 中使用 Dplyr 转换多列结构
- flutter - FirebaseAuth.instance.onAuthStateChanged 未显示我的登录状态
- python - 如何在文字墙中找到预定义的单词?
- javascript - setInterval 函数现在无法更新值
- python - 循环遍历文件 1 中的变量并在文件 2 中执行