详解iOS App中UIPickerView滚动选择栏的添加方法

2020-01-15 15:48:34于海丽

    pickerView.delegate=self;  
//    显示选中框  
    pickerView.showsSelectionIndicator=YES;  
    [self.view addSubview:pickerView];  

    NSArray *dataArray = [[NSArray alloc]initWithObjects:@"许嵩",@"周杰伦",@"梁静茹",@"许飞",@"凤凰传奇",@"阿杜",@"方大同",@"林俊杰",@"胡夏",@"邱永传", nil]; 

    pickerData=dataArray; 

//     添加按钮     
    CGRect frame = CGRectMake(120, 250, 80, 40);  
    UIButton *selectButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
    selectButton.frame=frame;  
    [selectButton setTitle:@"SELECT" forState:UIControlStateNormal]; 

    [selectButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

    [self.view addSubview:selectButton]; 

}


4.实现UIPickerView的代理方法,将数据显示在选取器上所需要几个方法
复制代码
#pragma mark -  
#pragma mark Picker Date Source Methods 

 

//返回显示的列数  
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView  
{  
    return 1;  
}  
//返回当前列显示的行数  
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component  
{  
    return [pickerData count];  

#pragma mark Picker Delegate Methods 

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


前两个是数据源的代理方法,一个是返回列,有几个选取器就返回几,第二个是设置选取器有多少行,因为就这一个选取器,所以直接返回行数,即数组元素个数多少;第三个代理方法是将数组元素添加到了选取器上面显示;