このコードが正しく実行されていない理由。setNeedsDisplayとsetNeedsLayoutを試しましたが、このコードは実行されていないようです。実行しても、想定外のときに実行され、間違って実行されます。つまり、間違った場所にランダムな長さで線が引かれます。-(void)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];