我有以下问题:
我制作了两个自定义UIViews。第一个是用作容器的气泡视图,它使用带有CGContext方法的drawRect来绘制自身。第二个是作为UILabel的子类的文本视图,用于显示NSAttributedStrings(需要iOS 5)。这个文本视图 使用UILabel drawTextInRect的指定子类方法:。
使用addSubview将文本视图添加到气泡视图中。 他们都使用透明的UIColor(clearColor)作为背景。现在,为了进行性能优化,我想将之前的清晰背景颜色设置为白色。
突然有可见的视觉文物。为了更好的调试,我现在将背景颜色设置为红色和蓝色:
如你所见,有 - 红色矩形“Lorem”,蓝色矩形“Lorem ipsum等”和一个绿色的矩形 “ipsum dolor”,一切都很好。它们是当前的位置和大小 我的文字观点 - 红色的“Lorem”下面有一个蓝色和红色的矩形。他们是视觉 文物。我初始化自定义时,它们正好在起始矩形上 使用initFrame的文本视图。
我确实使用setFrame将标签的框架移动到了正确的位置:
以前的标签矩形仍然仍然绘制,但为什么呢?
重绘的原因是什么?如何解决?