Ios “暂停”按钮在更改时添加新节点

Ios “暂停”按钮在更改时添加新节点,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我已经在我的精灵套件游戏中实现了暂停和播放按钮。问题在于每次按下按钮时似乎都会添加一个新节点。这将是相当无效的。我想要的是替换现有的。我怎样才能做到这一点 -(void)didMoveToView:(SKView *)view { pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; [pauseButton setImage:[UIImage imageNamed:@"pause"]

我已经在我的精灵套件游戏中实现了暂停和播放按钮。问题在于每次按下按钮时似乎都会添加一个新节点。这将是相当无效的。我想要的是替换现有的。我怎样才能做到这一点

-(void)didMoveToView:(SKView *)view
{

    pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    [pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
    [pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:pauseButton];

}




-(void)pausedMenu:(SKView *)view
{

    menuBackground = [SKSpriteNode spriteNodeWithColor:[SKColor colorWithWhite:0.0 alpha:0.2] size:CGSizeMake(self.frame.size.width*2, self.frame.size.height*2)];

    [self addChild:menuBackground];


    [pauseButton setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal];
    [pauseButton addTarget:self action:@selector(startMenu:) forControlEvents:UIControlEventTouchUpInside];

    self.scene.paused = YES;

}

-(void)startMenu:(SKView *)view
{

    [menuBackground removeAllChildren];
    [pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
    [pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];
    self.scene.paused = NO;

}
你是说

[menuBackground removeFromParent];//add this
menuBackground = [SKSpriteNode spriteNodeWithColor:[SKColor colorWithWhite:0.0 alpha:0.2] size:CGSizeMake(self.frame.size.width*2, self.frame.size.height*2)];
[self addChild:menuBackground];

[pauseButton removeFromParent];//add this
pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    [pauseButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];
    [pauseButton addTarget:self action:@selector(pausedMenu:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];