为什么此代码未正确执行。我已经尝试过setNeedsDisplay和setNeedsLayout,但这段代码似乎没有被执行。即使它确实执行,它也会在它不应该执行时执行,并且它执行错误意味着它在错误的位置和随机长度绘制线。 - (无效)drawNW {
NSLog(@"%f",x1);
NSLog(@"%f",y1);
CGContextSetStrokeColorWithColor(c, [UIColor blueColor].CGColor);
CGContextSetLineWidth(c, 10.0);
CGContextMoveToPoint(c, x1, y1);
CGContextAddLineToPoint(c, -(sqrtf(2)/2)*length + x1, ((sqrtf(2)/2)*length + y1));
CGContextStrokePath(c);
length = line.bounds.size.height;
}
长度,x1和y1是由NSTimer以0.1秒的间隔不断变化的浮点数:
NWTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(startMoving) userInfo:nil repeats:YES];
计时器调用此代码调用drawNW:
x1 = x1-2.5;
y1 = y1-2.5;
length= length+5;
[self drawNW];
答案 0 :(得分:0)
您绘制内容的代码(CGContext ...等)需要在您的类'drawRect
方法中。然后,您的计时器驱动代码应该只更改x1,y1和length的值,然后调用[self setNeedsDisplay]
。这告诉iOS需要重新绘制视图,以便随后调用drawRect
。
至于绘制你想要它们的线条,我无法确定你要对这段代码做什么。