我正在做一个测验。它就是这样的,当你回答一个问题时,你必须点击一些带有文字的按钮来回复。
示例()=按钮
(G)(L)(O)(R)(I)(O)(U)(S)
他们必须正确地在这个标签上拼写光彩。当他们点击answear按钮时,如果标签上写着Glorious,他们就会进入下一个级别。如果它说了一些像Gloirous这样的消息,那么就会出现一个错误的消息。
问题:
问题是,当我点击一个按钮时,它会在标签上添加文字。
但是当我点击另一个按钮时,之前的文字消失了,新的文字就会出现。
我希望你们能理解我想要的东西!我的英语不是最好的,但如果你想让我发布一些代码,我可以做到这一点!;)
答案 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语句可能更有意义,但您明白了。