2012-06-02 73 views
0

好吧,這裏的人是我的問題,我正在做一個電子學生uipickerview電阻計算器,但我沒有任何想法如何配置「DidSelectRow」的方法。如何在Multi- UIPICKERVIEW中配置「DidSelectRow」?

這個電阻計算器的想法是,當用戶選擇她的電阻的顏色(行)時,uipickerview使這些操作對應於顏色並將結果扔到UILABEL中。

爲了計算電阻值,將顏色1的線的值與顏色2的線的值一起乘以顏色3的線的值,就像那樣。

This is the image of the values to calculate the resistor value

我不知道如何將值assing於行,之後加入他們的行列,然後相乘,最後在一個UILabel扔。

有人幫我請!我會把我的應用程序的信用! pleaase即時通訊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

如果你把這個行:的NSLog(@「行:%d成分爲:% d」,行,組件);在pickerView:didSelectRow:inComponent方法中,您會看到它爲您提供了行和組件(列)。行號將爲您提供該顏色的值,例如,因爲「Negro」在行0中,而黑色在電阻器顏色方案中代表0。列號會告訴你什麼值用作乘數來獲得電阻值。像這樣的東西應該接近你所需要的。我在控制器的.h文件中聲明瞭屬性firstDigit和secondDigit(作爲整數)和乘數(作爲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); 
} 
+0

謝謝!這麼多,我做了一些chages,但是,你給了我做這個想法,太多了!我會把你放在我的應用程序的信用;)jaja謝謝:! –