UIPickerView 调研笔记


  这是本人第一次写CSDN博客, 也是今天申请的账号(好开心微笑), 以前总是上百度看到别人的技术博客,好羡慕,就想着自己也能动手写一些东西,然而我是一个刚刚学习iOS 的小菜鸟, 写的不好,请各位同行不吝指点一二,万分感激.

  这两天自学了下UIPickerview 这个控件, 废话不多说来看看我对这个控件的理解.

  UIPickerview 跟 UItableView很相似 需要 签订两个协议 

UIPickerViewDataSource, UIPickerViewDelegate.  数组是用来装那些要显示在PickerView上的数据.


#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate>
@property(nonatomic,retain)UIPickerView * pickerView;
@property(nonatomic,retain)NSArray * myPickerData;
@property(nonatomic,retain)NSArray * myPickerData2;
@end

在ViewController.m中   

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    
    NSArray *array = [[NSArray alloc] initWithObjects:@"Horse", @"Sheep", @"Pig", @"Dog", @"Cat", @"Chicken", @"Duck", @"Goose", nil];
    _myPickerData = array;
    
    NSArray *array_2 = [[NSArray alloc] initWithObjects:@"Tree", @"Flower", @"Grass", @"Fence", @"House", @"Table", @"Chair", @"Book",@"Swing" , nil];
   _myPickerData2 = array_2;
    
    
    _button = [UIButton buttonWithType:UIButtonTypeCustom];
    [_button setFrame:CGRectMake(100, 100, 120, 50)];
    [_button setBackgroundColor:[UIColor purpleColor]];
    [_button setTitle:@"UIPickerView" forState:UIControlStateNormal];
    [_button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_button];
    
    //UIPickerView
    _pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(20, 200, 250, 250)];
    // 打开用户交互   默认是YES
    [_pickerView setUserInteractionEnabled:YES];
    [_pickerView setDelegate:self];
    [_pickerView setDataSource:self];
    [self.view addSubview:_pickerView];
  
}
//在数组中加入你想要显示的对象, 初始化PickerView, 签订代理,实现几个重要的方法


// 这个方式是返回显示几个PickerView

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

    return 2;//几列

}


// 显示的行数

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {

    return [_myPickerData count];

}


// pickerView 显示的内容, 通过row从数组中取出我们想要显示的 元素

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

    if (component == 0) {

        return [_myPickerData objectAtIndex:row];

    }else{

        return [_myPickerData2 objectAtIndex:row];

    }

}

// 这个方法是当 我们转动PickerView 的时候触发

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

{

    NSLog(@"%ld , %ld" , row , component);

}

//  设置每行 的高度

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component

{

    return 100;

}


// button的点击方法

-(void)buttonClick:(UIButton *)button{

    //_pickerView selectedRowInComponent0 能得到第0组的第几行;

    NSInteger row = [_pickerView selectedRowInComponent:0];

    NSInteger row2 = [_pickerView selectedRowInComponent:1];

    //_myPickerData objectAtIndex:row 能利用上面的行数作为下标找到数组里的string,即是显示的内容

    NSString *selected = [_myPickerData objectAtIndex:row];

    NSString *selected2 = [_myPickerData2 objectAtIndex:row2];

    NSString *msg = [[NSString alloc] initWithFormat:@"You selected %@ and %@!", selected, selected2];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello!"message:msg delegate:nil cancelButtonTitle:@"Yes, I Did."otherButtonTitles:nil];

    

    [alert show];

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值