0

好的,伙计们,这是我的问题,我正在用 uipickerview 为电子学生做一个电阻计算器,但我不知道如何配置“DidSelectRow”的方法。

这个电阻计算器的想法是,当用户选择她的电阻的颜色(行)时,uipickerview 会根据颜色进行操作并将结果扔到 UILABEL 中。

为了计算电阻值,将颜色 1 的值与颜色 2 的值相乘,然后乘以颜色 3 的值,类似这样。

这是计算电阻值的值的图像

我不知道如何为行赋值,然后加入它们,然后相乘,最后放入 UILABEL。

请有人帮帮我!!我会加入我的应用程序的学分!请 :D

这是我的.h

#import <UIKit/UIKit.h>

@interface Resistenciacalc : UIViewController
<UIPickerViewDelegate,UIPickerViewDataSource>


@property (strong, nonatomic) IBOutlet UIPickerView *ColorPicker;

@property (strong, nonatomic) NSArray*ColorData;

这是我的.m

#import "Resistenciacalc.h"

@interface Resistenciacalc ()

@end

@implementation Resistenciacalc
@synthesize ColorData = _ColorData;
@synthesize ColorPicker;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    _ColorData = [[NSArray alloc] initWithObjects:@"Negro",@"Marron",@"Rojo",@"Naranja",@"Amarillo",@"Verde",@"Azul",@"Violeta", nil];
}

#pragma mark - UIPickerview Methods

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 4;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return _ColorData.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return [_ColorData objectAtIndex:row];
}

/*- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{



}
4

1 回答 1

1

如果你把这一行: NSLog(@"Row is:%d Component is:%d",row,component); 在 pickerView:didSelectRow:inComponent 方法中,您将看到它为您提供了行和组件(列)。行号将为您提供该颜色的值,因为例如,“黑人”在第 0 行,黑色代表电阻配色方案中的 0。列号将告诉您使用什么值作为乘数来获得电阻值。像这样的东西应该接近你需要的东西。我已经在控制器 .h 文件中声明了属性 firstDigit 和 secondDigit(作为整数)和乘数(作为双精度数)。我添加了一个按钮,在用户选择颜色后进行计算:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

    switch (component) {
        case 0:
            self.firstDigit = row ;
            break;
        case 1:
            self.secondDigit = row ;
            break;
        case 2:
            self.multiplier = pow(10,row);
            break;

        default:
            break;
    }
}


-(IBAction)calculateValue:(id)sender {
    int value = (self.firstDigit *10 + self.secondDigit)* multiplier;
    NSLog(@"%d Ohms",value);
}
于 2012-06-02T05:55:41.943 回答