我希望有一个UIButton
可以更改系列中标签的文字。例如,我可能有一个标有hello
的标签。
然后,当我按下按钮时,它将变为What's up?
。
但是,第二次点按相同按钮会将标签更改为Nuttin' much!
。
我知道如何让标签的文字更改一次,但如何使用相同的按钮多次更改?最好是大约20到30个单独的文本。
提前谢谢! :d
答案 0 :(得分:2)
这是非常开放的。考虑向您的类添加属性,该属性是字符串数组的索引。每次按下按钮都会增加数组(数组的模数),并使用相应的字符串更新按钮。但是还有很多其他方法可以做到这一点......
答案 1 :(得分:1)
当应用程序用完短语时会发生什么?重来?典型的方法看起来像这样。
@property (strong, nonatomic) NSArray *phrases;
@property (assign, nonatomic) NSInteger index;
- (IBAction)pressedButton:(id)sender {
// consider doing this initialization somewhere else, like in init
if (!self.phrases) {
self.index = 0;
self.phrases = @{ @"hello", @"nuttin' much" }; // and so on
}
self.label.text = self.phrases[self.index];
self.index = (self.index == self.phrases.count-1)? 0 : self.index+1;
}
答案 2 :(得分:0)
在viewDidLoad方法中,创建一个包含字符串的数组来保存标签。然后创建一个变量来跟踪应该将哪个对象设置为当前标签。设置初始文本:
NSArray *labelNames = [[NSArray alloc] initWithObjects:@"hello",@"what's up?", @"nuttin much"];
int currentLabelIndex = 0;
[label setText:[labelNames objectAtIndex:currentLabelIndex]];
然后在点击按钮时调用的方法中,更新文本和索引。
- (IBAction) updateButton:(id)sender {
// this finds the remainder of the division between currentLabelIndex+1 and labelNames.count. If it is less than the count, its just the index. If its equal to the count we go back to the beginning of the array.
currentLabelIndex = (currentLabelIndex+1)%labelNames.count;
[label setText:[labelNames objectAtIndex:currentLabelIndex]];
}