测验游戏/单击按钮将文本添加到标签

时间:2016-02-12 11:16:08

标签: c++ ios objective-c iphone ipad

我正在做一个测验。它就是这样的,当你回答一个问题时,你必须点击一些带有文字的按钮来回复。

示例()=按钮

(G)(L)(O)(R)(I)(O)(U)(S)

他们必须正确地在这个标签上拼写光彩。当他们点击answear按钮时,如果标签上写着Glorious,他们就会进入下一个级别。如果它说了一些像Gloirous这样的消息,那么就会出现一个错误的消息。

问题:

问题是,当我点击一个按钮时,它会在标签上添加文字。

但是当我点击另一个按钮时,之前的文字消失了,新的文字就会出现。

我希望你们能理解我想要的东西!我的英语不是最好的,但如果你想让我发布一些代码,我可以做到这一点!;)

3 个答案:

答案 0 :(得分:0)

您需要保存以前的文字,并将新文字追加到上一页。

label.setText(label.text() + newText)

答案 1 :(得分:0)

试试这个:

[yourLabel setText:[yourLabel.text stringByAppendingString:@"%@", yourButton.text]];

答案 2 :(得分:0)

不要将文本保存到标签。显示标签中的文本,但将其存储在其他位置。

创建一个实例变量“answerString”。将每个字母附加到答案字符串,然后在标签上显示答案字符串:

NSString *answerString; 

另外,不要为每个按钮编写不同的IBAction方法。在每个按钮上放置数字标签,将它们附加到相同的方法,并使用标签号来确定按下了哪个按钮。像这样:

typedef NS_ENUM(NSInteger, buttonTags)
{
 aButton = 100,
 bButton = 101,
 cButton = 102
//and so on for the entire alphabet, or for the letters you need
}

- (IBAction) buttonAction: (UIButton *) sender;
{
  int button_id = sender.tag;
  switch (button_id)
  {
    case aButton:
      answerString = [answerString stringByAppendingString: @"a"];
      break;
    case bButton:
      answerString = [answerString stringByAppendingString: @"b"];
      break;
  }
  answerLabel.text = answerString
}

如果您有所有26个字母的按钮,那么对标签号进行一些数学计算以获得每个字符的unicode值而不是使用包含26个案例的switch语句可能更有意义,但您明白了。