每次触摸时,ON / OFF按钮都会保持切换状态

时间:2015-01-30 12:24:54

标签: button sprite-kit

我不知道我做错了什么,也许我在这个项目上坐得太久了。但是,我在menuScene中设置了一个设置菜单,我想用这个代码创建一个带有纹理的简单开关按钮:

if ([settingsMenuNode.name isEqualToString:@"checkmark1"]) {

        if (self.checkmarkBanner == NO) {
            [self.menuCheckmark1 setTexture:[SKTexture textureWithImageNamed:@"menuCheckmark"]];
            self.checkmarkBanner = YES;
            NSLog(@"YES");
        }

        if (self.checkmarkBanner == YES) {
            [self.menuCheckmark1 setTexture:[SKTexture textureWithImageNamed:@"menuCheckmarkEmpty"]];
            self.checkmarkBanner = NO;
            NSLog(@"NO");
        }

    }

每次触摸节点时,我都会获得ON&同时关闭。

任何人都可以帮帮我吗?

checkmarkBanner是我的BOOL,用于设置是否出现游戏中的横幅通知。

1 个答案:

答案 0 :(得分:1)

好的,谢谢你的快速解答,所以我已将我的代码更新为此(我添加了一些NSUserDefaults):

//CheckMarkBanner
    if ([settingsMenuNode.name isEqualToString:@"checkmarkBanner"]) {

        if (self.checkmarkBanner == YES) {
            [self.menuCheckmark1 setTexture:[SKTexture textureWithImageNamed:@"menuCheckmarkEmpty"]];
            NSString *offString = @"NO";
            [[NSUserDefaults standardUserDefaults]setObject:offString forKey:@"checkmark1Banner"];
            self.checkmarkBanner = [[[NSUserDefaults standardUserDefaults]stringForKey:@"checkmark1Banner"]boolValue];
            NSLog(@"Banner NO");

        }

        else {
            [self.menuCheckmark1 setTexture:[SKTexture textureWithImageNamed:@"menuCheckmark"]];
            NSString *onString = @"YES";
            [[NSUserDefaults standardUserDefaults]setObject:onString forKey:@"checkmark1Banner"];
            self.checkmarkBanner = [[[NSUserDefaults standardUserDefaults]stringForKey:@"checkmark1Banner"]boolValue];
            NSLog(@"Banner YES");

        }
    }