好的,伙计们这里是我的问题,我正在为带有uipickerview的电子学生做一个Resistor计算器,但我不知道如何配置“DidSelectRow”的方法。
这个电阻计算器的想法是当用户选择其电阻的颜色(行)时,uipickerview使操作对应于颜色并将结果抛出到UILABEL中。
为了计算电阻值,将颜色1的线与颜色2的值的值一起乘以颜色3的值,就像那样。
This is the image of the values to calculate the resistor value
我不知道如何为行分配值,然后将它们连接起来然后相乘并最终输入UILABEL。
有人帮帮我!我会把我的应用程序的积分! Pleasee: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{
}
答案 0 :(得分:1)
如果你把这一行:NSLog(@“Row is:%d Component is:%d”,row,component);在pickerView:didSelectRow:inComponent方法中,您将看到它为您提供了行和组件(列)。行号将为您提供该颜色的值,因为,例如,“Negro”在第0行,黑色在电阻颜色方案中表示0。列号将告诉您使用什么值作为乘数来获取电阻值。这样的事情应该接近你所需要的。我已经在控制器.h文件中声明了属性,firstDigit和secondDigit(作为int)和乘数(作为double)。我添加了一个按钮,用户在选择颜色后进行计算:
- (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);
}