IOS拾取器piker多组件实例

本文介绍了一种在iOS应用中实现多组件Picker视图的方法。通过遵循UIPickerViewDelegate和UIPickerViewDataSource协议,文章详细展示了如何创建并配置一个包含两个组件的Picker视图,每个组件分别显示不同的字符串数组数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:朱克锋

邮箱:zhukefeng@iboxpay.com

转载请注明出处:http://blog.youkuaiyun.com/linux_zkf


pikerIOS开发中有着广泛的应用,这里实现的是多组件的piker,实现piker需要遵从piker的数据源与代理协议

UIPickerViewDelegate, UIPickerViewDataSource

示例效果如图


头文件

#import <UIKit/UIKit.h>

#define F_C   0

#define S_C   1

@interface DoubleComponentPickerViewController : UIViewController

<UIPickerViewDelegate, UIPickerViewDataSource>

{

    UIPickerView *doublePicker;

    NSArray *upCaseTypes;

    NSArray *lowCaseTypes;

}

@property(nonatomic, retain) IBOutlet UIPickerView *doublePicker;

@property(nonatomic, retain) NSArray *upCaseTypes;

@property(nonatomic, retain) NSArray *lowCaseTypes;

-(IBAction)buttonPressed;

@end


#import "DoubleComponentPickerViewController.h"

@implementation DoubleComponentPickerViewController

@synthesize doublePicker;

@synthesize upCaseTypes;

@synthesize lowCaseTypes;


-(IBAction)buttonPressed

{

    NSInteger upCaseRow = [doublePicker selectedRowInComponent:

F_C];

    NSInteger lowCaseRow = [doublePicker selectedRowInComponent:

                          S_C];

    NSString *lowCase = [lowCaseTypes objectAtIndex:lowCaseRow];

    NSString *upCase = [upCaseTypes objectAtIndex:upCaseRow];

}

- (void)viewDidLoad {

    NSArray *upCaseArray = [[NSArray alloc] initWithObjects:@"A",

@"B", @"C", @"D",

@"E", @"F", @"G", nil];

    self.upCaseTypes = upCaseArray;

    [upCaseArray release];

    NSArray *lowCaseArray = [[NSArray alloc] initWithObjects:@"a",

  @"b", @"c", @"d", @"e",@"f", @"g",nil];

    self.lowCaseTypes = lowCaseArray;

    [lowCaseArray release];

}

#pragma mark -

#pragma mark Picker Data Source Methods

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

    return 2;

}

- (NSInteger)pickerView:(UIPickerView *)pickerView

numberOfRowsInComponent:(NSInteger)component {

    if (component == F_C)

        return [self.lowCaseTypes count];

    return [self.upCaseTypes count];

}

#pragma mark Picker Delegate Methods

- (NSString *)pickerView:(UIPickerView *)pickerView

titleForRow:(NSInteger)row

forComponent:(NSInteger)component {

    if (component == S_C)

        return [self.lowCaseTypes objectAtIndex:row];

    return [self.upCaseTypes objectAtIndex:row];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值