在Quartz中移动矩形

时间:2013-02-14 19:07:22

标签: objective-c xcode4.5 quartz-2d

我正在尝试学习石英的基础知识,并且不明白为什么这不起作用   - 当按下按钮时,这应该将红色矩形向右移动,在按下按钮时,它不会做任何事情   - “NSLog(A”帮助“);试图弄清楚按钮是否正常工作   - 谢谢

@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

谢谢!

2 个答案:

答案 0 :(得分:1)

您不想在drawRect中调用setNeedsDisplay;简单地说,“既然我已经绘制了视图,那就让我再做一次!”

您想在动作中调用setNeedsDisplay,以在移动矩形后更新屏幕。

答案 1 :(得分:0)

在递增lR后,在moveRight中尝试[self setNeedsDisplay]