如用纯代码书写如果多次调用setNeedsDisplay出现绘图重叠现象.
解决办法:初始化时设置背景色.
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
self.backgroundColor = [UIColor blackColor];//设置后无重叠
CADisplayLink* link =[CADisplayLink displayLinkWithTarget:self selector:@selector(timeChange)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
return self;
}
CGFloat h =0;
-(void)drawRect:(CGRect)rect
{
UIImage* _image1 = [UIImage imageNamed:@"圆.png"];
[_image1 drawAtPoint:CGPointMake(100, h)];
_image1 = nil;
h+= 10;
if (h>=rect.size.height)
{
h = 0;
}
}
-(void)timeChange
{
[self setNeedsDisplay];
}