3

我想用基于数组的字符串更改 UILabel。这是我到目前为止所拥有的:

- (IBAction) sliderValueChanged:(UISlider *)sender {
   scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
    NSString *wholeText = @"Very Bad";
    self.scanLabel.text = wholeText;

}

而不仅仅是“非常糟糕”,我想要不同的值来显示“非常糟糕、糟糕、好的、好、非常好”。

我在哪里声明 NSMutableArray,如何使用滑块实现它?

更新:谢谢大家的帮助!(我喜欢stackoverflow)

4

4 回答 4

5

这不是编译器检查...但您可能会有所了解。

NSArray *texts=[NSArray arrayWithObjects:@"very Bad", @"Bad", @"Okay", @"Good", @"Very Good",nil];
NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
self.scanLabel.text=[texts objectAtIndex:sliderValue];
于 2013-01-11T20:40:03.497 回答
3

您在与上述方法相同的类中声明它。

假设它被称为wholeTexts.

代码将如下所示:

- (IBAction) sliderValueChanged:(UISlider *)sender {
    scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
    NSString *wholeText = [wholeTexts objectAtIndex:(wholeTexts.count - 1) * (int)(sender.value - sender.minimumValue)/(sender.maximumValue - sender.minimumValue)];
    self.scanLabel.text = wholeText;
}
于 2013-01-11T20:40:16.667 回答
1

你可以在任何你想要的地方实现数组,只要它是在你需要使用滑块之前创建的。在 iOS 中,滑块的值只能介于 0 和 1 之间,因此您需要将该值乘以某个值以获得与数组中项目数一样高的数字(减 1),并且您需要将它们转换为整数,因此您可以将该值用作数组的索引。像这样的东西:

- (IBAction) sliderValueChanged:(UISlider *)sender {
   scanLabel.text = [myArray objectAtIndex:(int)(sender.value * 10)];

}
于 2013-01-11T20:40:53.013 回答
1

将您的文本值放入数组中

NSArray* array =  @[@"very Bad", @"Bad", @"Okay", @"Good", @"Very Good"];
  • 将滑块设置为最小值为 0,最大值为 4
  • 把你的[sender value]变成一个int,例如floor([sender value])

使用您的 int 从数组中选择一个项目,例如

NSString* result = [array objectAtIndex:myInt];
于 2013-01-11T20:43:41.443 回答