如何在多 UIPICKERVIEW 中配置“DidSelectRow”?

Posted

技术标签:

【中文标题】如何在多 UIPICKERVIEW 中配置“DidSelectRow”?【英文标题】:How I Can Configure "DidSelectRow" In a Multi- UIPICKERVIEW? 【发布时间】:2012-06-02 05:29:31 【问题描述】:

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

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

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

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

我不知道如何为行赋值,然后将它们连接起来,然后相乘,最后放入 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




【问题讨论】:

【参考方案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);

【讨论】:

谢谢!这么多,我做了一些修改,但是,你给了我这样做的想法,比很多!,我会把你放在我的应用程序的学分中;)谢谢:!

以上是关于如何在多 UIPICKERVIEW 中配置“DidSelectRow”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在多平台 Android 模块中配置 Kotlin jvmTarget?

如何在多租户环境中自动选择配置的 SAML 身份提供程序以使用 Spring SAML 进行 SSO

如何在 UIPickerview 中添加一行

如何在 UIPickerView 中自动换行

在多模块 SDK Android 库项目中配置 proguard

尝试使用 UIScrollView 创建自定义水平 UIPickerView - 如何像在 UIPickerView 中一样淡出边缘?