1

私はクオーツの基本を学ぼうとしていますが、なぜこれが機能しないのか理解できません.これは、ボタンが押されたときに赤い四角形を右に動かし、瞬間にバットを打つ必要があります.何もしません. "help"); ボタンが機能しているかどうかを調べようとしました - ありがとう

@implementation QuartzView

-(IBAction)moveRight:(id)sender{

    NSLog(@"Help");

    lR += 50;

}

- (id)initWithFrame:(NSRect)frameRect
{
    self = [super initWithFrame:frameRect];
    if (self) {

    }

    return self;
}

- (void)drawRect:(NSRect)dirtyRect
{
    CGContextRef myContext = [[NSGraphicsContext // 1
                               currentContext] graphicsPort];

    // Drawing code here.
    CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);// 3
    CGContextFillRect (myContext, CGRectMake (lR, 0, 200, 100 ));

    [self setNeedsDisplay:YES];
}

@end

ありがとう!

4

2 に答える 2

1

drawRectでsetNeedsDisplayを呼び出さないでください。それは単に「ビューを描いたので、もう一度やらせてください」と言っています。

アクションでsetNeedsDisplayを呼び出して、長方形を移動した後に画面を更新します。

于 2013-02-15T03:57:43.123 に答える
0

[self setNeedsDisplay]lRをインクリメントした後、moveRight内で試してください。

于 2013-02-14T19:12:56.640 に答える