iOS开发-UIPickerView 简单介绍

简介:UIPickerView是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像UIControl那样绑定事件处理方法,UIPickerView的事件处理由其委托对象完成。使用UIPickerView的对象应该遵守UIPickerViewDataSource,UIPickerViewDelegate。 
1.UIPickerView效果


2.声明UIPickerView,声明属性
@property(nonatomic,retain)NSArray*proTimeList;
@property(nonatomic,retain)NSArray*proTitleList;
@property(nonatomic,retain)NSString*proTimeStr;
@property(nonatomic,retain)NSString*proNameStr;


UIPickerView*pickerView = [[UIPickerViewalloc]initWithFrame:CGRectMake(0,100,320,216)];
   //显示选中框
    pickerView.
showsSelectionIndicator=YES;
    pickerView.
dataSource=self;
    pickerView.
delegate=self;
    [
self.viewaddSubview:pickerView];
   
_proTitleList = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",nil];
    _proTimeList = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30",nil];

3.签协议
<UIPickerViewDelegate,UIPickerViewDataSource>

4.实现方法
// pickerView列数
- (
NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView {
   
return 2;
}

// pickerView 每列个数
- (
NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component {
   
if (component == 0) {
       
return[_proTitleListcount];
    }
   
   
return [_proTimeListcount];
}

// 每列宽度
- (
CGFloat)pickerView:(UIPickerView*)pickerView widthForComponent:(NSInteger)component {
   
   
if (component == 1) {
       
return80;
    }
   
return 180;
}
// 返回选中的行
- (
void)pickerView:(UIPickerView*)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
   
if (component == 0) {
        _proNameStr = [_proTitleListobjectAtIndex:row];
       
    }
else {
       
_proTimeStr= [_proTimeListobjectAtIndex:row];

    }
   

}

//返回当前行的内容,此处是将数组中数值添加到滚动的那个显示栏上
-(
NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
   
if (component == 0) {
       
return[_proTitleListobjectAtIndex:row];
   
    }
else {
       
return[_proTimeListobjectAtIndex
:row];
       
    }
}

5.demo具体地址:http://download.csdn.net/detail/zhai19931004/9868948

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值