我正在尝试构建一个科学的计算器应用程序。但是,简单标签不符合我的需求,因为它无法显示例如整数或分数。所以我想开发自己的自定义标签类。
我已经尝试使用Core Graphics绘制数字和符号,但是我真的无法弄清楚如何绘制闪烁的游标。您对我的问题有任何建议,还是应该使用与CG不同的方法?最好的问候!
func drawText(text: String) {
let renderer = UIGraphicsImageRenderer(size: CGSize(width: 343, height: 306))
let image = renderer.image { ctx in
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .left
let attrs = [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Thin", size: 36)!, NSAttributedString.Key.paragraphStyle: paragraphStyle]
text.draw(with: CGRect(x: 0, y: 0, width: 343, height: 306), options: .usesLineFragmentOrigin, attributes: attrs, context: nil)
}
imageView.image = image
}
func drawCursor() {
// Don't know how to continue here
}
答案 0 :(得分:1)
您只能使用unicode符号来表示诸如积分之类的东西,下面是绘制积分符号的代码。
let textField = UITextField()
textField.text = "\u{222B}"
您还可以通过简单的Google搜索来查找所有其他字符的Unicode。
关于图形光标,您可以使用计时器来闪烁效果。下面的代码可以帮助您获得一些逻辑,
let textField = UITextField()
let text = "SomeText"
var count = 0
let timer = Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { (_) in
var displayText = ""
if count % 2 == 0 {
displayText = "\(text)|"
} else {
displayText = text
}
textField.text = displayText
print(textField.text ?? "")
count += 1
}
如果要在文本的中间显示光标,则需要跟踪其位置并将其插入中间。
编辑:-而不是在Internet上搜索unicode(按照@rmaddy的建议),您只需转到“编辑”菜单->“表情符号和符号”即可获取所需的符号。