【问题标题】:How to add up multi UILabels that was created from multi UISegmentedControl如何添加从多个 UISegmentedControl 创建的多个 UILabel
【发布时间】:2014-02-02 01:19:36
【问题描述】:

在我的 .h 文件中:

#import <UIKit/UIKit.h>
@property (weak, nonatomic) IBOutlet UILabel *lblSwResults;

- (IBAction)SegSwOne:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *SegSwOne;
- (IBAction)SegSwTwo:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *SegSwTwo;

@property (weak, nonatomic) IBOutlet UILabel *lblResOne
@property (weak, nonatomic) IBOutlet UILabel *lblResTwo;

在 .m 文件中

- (IBAction)SegSwOne:(id)sender {
    switch (self.SegSwOne.selectedSegmentIndex) {
        case 0:
            self.lblResOne.text =@"50";
            break;
        case 1:
            self.lblResOne.text =@"200";
            break;
        case 2:
            self.lblResOne.text =@"400";
            break;
        default:
            break;
    }
}

- (IBAction)SegSwTwo:(id)sender {
    switch (self.SegSwTwo.selectedSegmentIndex) {
        case 0:
            self.lblResTwo.text =@"50";
            break;
        case 1:
            self.lblResTwo.text =@"150";
            break;
        case 2:
            self.lblResTwo.text =@"400";
            break;
        default:
            break;
    }
}

我累的是,如果您选择不同的UISegmentedControl,它会更改UILabel lblSwResults 中的数字……。所以如果结果标签中的 case0 和 case2 = “450”……

看它是自动的 - 当您更改 SegSwOne 或 SegSwTwo 中的值时显示值的动态变化......最好的编码是什么..?我是否需要为每个值创建一个浮点值,然后为结果创建一个公式 NSString ???

任何帮助都会很棒或提供链接,以便我可以了解更多信息......?干杯

【问题讨论】:

  • 正确(或至少更好)的格式、拼写、语法和标点符号可能对您的问题有所帮助。

标签: ios objective-c uilabel


【解决方案1】:

我会这样:

为每个段创建两个返回值的方法:

- (int)segmentOneValue:(NSInteger)index {
    static int values[] = { 50, 200, 400 };

    return values[index];
}

- (int)segmentTwoValue:(NSInteger)index {
    static int values[] = { 50, 150, 400 };

    return values[index];
}

那么您的两个分段控制操作将是:

- (IBAction)SegSwOne:(UISegmentControl *)control {
    int valueOne = [self segmentOneValue:control.selectedSegmentIndex];
    int valueTwo = [self segmentTwoValue:self.SegSwTwo.selectedSegmentIndex];

    self.lblResOne.text = [NSString stringWithFormat:@"%d", valueOne];
    self.lblSwResults.text = [NSString stringWithFormat:@"%d", valueOne + valueTwo];
}

- (IBAction)SegSwTwo:(UISegmentControl *)control {
    int valueTwo = [self segmentOneValue:control.selectedSegmentIndex];
    int valueOne = [self segmentTwoValue:self.SegSwOne.selectedSegmentIndex];

    self.lblResTwo.text = [NSString stringWithFormat:@"%d", valueTwo];
    self.lblSwResults.text = [NSString stringWithFormat:@"%d", valueOne + valueTwo];
}

【讨论】:

  • 谢谢 Maddy,这就是我一直在寻找的东西 - 添加了更多可行的东西并且效果很好,谢谢...例如更改了 [control.selectedSegmentIndex] --- int valueOne = [self segmentOneValue: self.SegSWOne.selectedSegmentIndex];并将 :(UISegmentControl *) 控件替换为 :(id)sender { --- 再次感谢 sisimon
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多