目前,我正在drawRect
视图中覆盖,以便能够使用蒙版(使用CGContextClipToMask
inside drawRect
)剪辑彩色矩形。有时我会改变这个剪裁矩形的颜色。在这种情况下drawRect
,再次调用,用新颜色重绘和剪裁矩形。现在我不想立即更改颜色,而是对此进行动画处理。问题是,在覆盖 drawRect 时不执行动画(drawRect 只被立即调用一次)。
有没有办法执行这个动画,也许是通过子类化视图,所以我仍然drawRect
在超类中覆盖,但是动画是通过子类执行的,这样超类中的 drawRect 在动画期间被执行多次?
或者也可以根本不覆盖drawRect
,并且仍然能够以某种方式用蒙版剪辑这个矩形?
drawRect
看起来像这样:
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGImageRef maskImage = [[UIImage imageNamed:maskName] CGImage];
CGContextClipToMask(ctx, rect, maskImage);
CGContextSetFillColorWithColor(ctx, self.currentColor);
CGContextFillRect( ctx, rect );