【问题标题】:Outputting an average figure from multiple sliders in Objective-C从 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”标签显示两个输入的平均百分比。我该怎么办?我也在使用故事板。

【问题讨论】:

    标签: objective-c xcode xcode5


    【解决方案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 来更好地控制和本地化您的数字格式。

    【讨论】:

    • 您可以对两个滑块使用相同的操作方法,并在一种方法中完成所有操作。
    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 2021-12-02
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2022-09-28
    相关资源
    最近更新 更多