从 Objective-C 中的多个滑块输出平均数字
Posted
技术标签:
【中文标题】从 Objective-C 中的多个滑块输出平均数字【英文标题】:Outputting an average figure from multiple sliders in Objective-C 【发布时间】:2014-07-10 15:07:46 【问题描述】:我是 Objective-C 的初学者,我想知道如何将来自多个滑块的值数据的平均值输出到标签。
我走了这么远:
.h
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UISlider *Slider;
- (IBAction)updateValue:(UISlider *)sender;
@property (weak, nonatomic) IBOutlet UILabel *persentage;
@property (weak, nonatomic) IBOutlet UISlider *Slider2;
- (IBAction)updateValue2:(UISlider *)sender;
@property (weak, nonatomic) IBOutlet UILabel *persentage2;
@property (weak, nonatomic) IBOutlet UILabel *averagePercentage;
@end
.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
- (IBAction)updateValue:(UISlider *)sender
_percentage.text = [NSString stringWithFormat:@"%.2f %%",sender.value*100];
- (IBAction)updateValue2:(UISlider *)sender
_percentage2.text = [NSString stringWithFormat:@"%.2f %%",sender.value*100];
@end
我想做的是,我想让“averagePercentage”标签显示两个输入的平均百分比。我该怎么办?我也在使用故事板。
【问题讨论】:
【参考方案1】:向您的视图控制器添加一个方法并从您的 IBActions 调用它:
@interface ViewController ()
- (void)updateAveragePercentage;
- (NSString *)stringForPercentage:(float)value;
@end
@implementation ViewController
...
- (IBAction)updateValue:(UISlider *)sender
self.percentage.text = [self stringForPercentage:sender.value];
[self updateAveragePercentage];
- (IBAction)updateValue2:(UISlider *)sender
self.percentage2.text = [self stringForPercentage:sender.value];
[self updateAveragePercentage];
- (void)updateAveragePercentage
float average = 0.5f * (self.Slider.value + self.Slider2.value);
self.averagePercentage.text = [self stringForPercentage:average];
- (NSString *)stringForPercentage:(float)value
return [NSString stringWithFormat:@"%.2f %%", value * 100];
@end
请注意,我在 .m 文件的类扩展声明中声明了 updateAveragePercentage
,因为它没有必要公开可见。
我还添加了一个stringForPercentage
方法,这样stringWithFormat
代码就不会重复。您可能需要考虑使用 NSNumberFormatter 而不是 stringWithFormat 来更好地控制和本地化您的数字格式。
【讨论】:
您可以对两个滑块使用相同的操作方法,并在一种方法中完成所有操作。以上是关于从 Objective-C 中的多个滑块输出平均数字的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Objective-C 中的 UISlider 上添加标记? [关闭]