drawRect を使用して円弧を作成する UIView に int を渡すにはどうすればよいですか?
円弧を描画しようとしていますが、毎秒、UIView で setNeedsDisplay を呼び出し、int を 1 (秒) 進めます。これは呼び出しているようには見えず、呼び出しても (null) のままですNSLog(@"draw, %d",self.secs);
基本的に、私のコードログは毎秒「draw 1」に続いて「draw 0」を読み取ります。
draw.h
@property (nonatomic) int secs;
draw.m
@synthesize secs;
- (void)drawRect:(CGRect)rect
{
NSLog(@"draw, %d",self.secs);
//stuff with using this value
}
@end
main VC.m - NSTimer はこれを呼び出しますが、 tick.secs は毎回 0 のようです
draw *tick = [[draw alloc] init];
tick.secs = tick.secs+1;
NSLog(@"draw, %d",tick.secs);
[self.drawView setNeedsDisplay];
編集1:
Stonz2 は非常に正しいです。インスタンスを使用する必要がありますdraw
。これで問題の半分が解決しました。現在、メインの VC.m では毎秒tick.secs
増加していますが、draw.m では、drawRect は依然として毎秒secs
0 であると考えています
EDIT 2: Sha は、描画ではなく、UIView を使用して IBOutlet を観察して修正しました