【发布时间】:2021-08-24 09:26:30
【问题描述】:
我有以下draw(_ rect: CGRect)函数
override public func draw(_ rect: CGRect) {
super.draw(rect)
for (i, time) in times.enumerated() {
let fontSize = style.font.pointSize
let timeRect = CGRect(x: 2, y: y,
width: style.leftInset, height: fontSize)
let timeString = NSString(string: time)
timeString.draw(in: timeRect, withAttributes: attributes)
}
}
在某些情况下,我想从 UIView 中删除所有以前绘制的 NSString 对象并重新绘制。但似乎没有 API 可以做到这一点?
谁能帮忙?
更新
当调用 setNeedsDisplay 时,UIView 会删除它之前的所有绘图。但是由于某种原因,在我第二次调用 drawRect 方法之后,我的字符串变得模糊了。
【问题讨论】:
-
stackoverflow.com/questions/25360303/… ?但是
times是否同时被清理了?否则setNeedsDisplay可能就足够了。 -
Times 是一个字符串数组,我检查这个数组是否已更改,然后我才再次调用 drawRect。 drawRect 完成后绘制的字符串是模糊的,所以我猜以前的字符串仍然存在。
-
一个叫‘属性’的家伙是哪里来的?
-
@ElTomato 它在上面的类中定义。