直接粘贴代码
#import "ViewController.h"
@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (strong, nonatomic) IBOutlet UIPickerView *pickerView;
@property(nonatomic,strong)NSMutableArray *hArr;
@property(nonatomic,strong)NSMutableArray *mArr;
@end
@implementation ViewController
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? NSLog(@"%@",self.hArr);
? ? NSLog(@"===%@",self.mArr);
? ? _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(25, 35, self.view.bounds.size.width-50, 80)];
? ? _pickerView.backgroundColor = [UIColor clearColor];
? ? _pickerView.delegate = self;
? ? _pickerView.dataSource = self;
? ? _pickerView.delegate = self;
? ? _pickerView.dataSource = self;
? ? [self.view addSubview:self.pickerView];
? ? // Do any additional setup after loading the view.
}
#pragma mark pickerviewDelegate
//返回列数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
? ? return2;
}
//返回每列行数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
? ? if(component==0) {
? ? ? ? return? 24;
? ? }else{
? ? ? ? return? 60;
? ? }
}
// 返回每一行的标题
-(NSString*)pickerView:(UIPickerView*)pickerViewtitleForRow:(NSInteger)rowforComponent:(NSInteger)component
{
? ? if(component ==0)
? ? {
? ? ? ? returnself.hArr[row];
? ? }else
? ? {
? ? ? ? returnself.mArr[row];
? ? }
}
//改变选中那行的字体和颜色
- (UIView*)pickerView:(UIPickerView*)pickerViewviewForRow:(NSInteger)rowforComponent:(NSInteger)componentreusingView:(UIView*)view{
? ? if(!view){
? ? ? ? view = [[UIViewalloc]init];
? ? }
? ? UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, (self.view.bounds.size.width-50)/3, 20)];
? ? if(component ==2) {
? ? ? ? NSIntegerselecrDay? = [_pickerViewselectedRowInComponent:component];
? ? ? ? if(selecrDay == row) {
? ? ? ? ? ? text.textColor = [UIColor colorWithRed:13/255.f green:152/255.f blue:215/255.f alpha:1];
? ? ? ? }
? ? }
? ? text.textAlignment = NSTextAlignmentCenter;
? ? if(component==0) {
? ? ? ? text.text= [_hArrobjectAtIndex:row];
? ? }
? ? if(component==1) {
? ? ? ? text.text= [_mArrobjectAtIndex:row];
? ? }
? ? [viewaddSubview:text];
? ? returnview;
}
///被选择的行
-(void)pickerView:(UIPickerView*)pickerViewdidSelectRow:(NSInteger)rowinComponent:(NSInteger)component{
? ? UIView* view =? [pickerViewviewForRow:rowforComponent:component];
? ? UILabel* label = view.subviews.firstObject;
? ? label.textColor =[UIColor redColor];
? ? label.font = [UIFont systemFontOfSize:30.0];
}
#pragma mark- 懒加载
-(NSMutableArray *)mArr{
? ? if(!_mArr){
? ? ? ? _mArr= [NSMutableArrayarray];
? ? ? ? for(inti? =0; i<60; i++) {
? ? ? ? ? ? NSString*Str= [NSStringstringWithFormat:@"%02d",i];
? ? ? ? ? ? [_mArraddObject:Str];
? ? ? ? }
? ? }
? ? return_mArr;
}
-(NSMutableArray *)hArr{
? ? if(!_hArr){
? ? ? ? _hArr= [NSMutableArrayarray];
? ? ? ? for(inti? =0; i<24; i++) {
? ? ? ? ? ? NSString*Str= [NSStringstringWithFormat:@"%02d",i];
? ? ? ? ? ? [_hArraddObject:Str];
? ? ? ? }
? ? }
? ? return_hArr;
}
@end
主要代码
//改变选中那行的字体和颜色
- (UIView*)pickerView:(UIPickerView*)pickerViewviewForRow:(NSInteger)rowforComponent:(NSInteger)componentreusingView:(UIView*)view{
?if(!view){
? ? ? ? view = [[UIViewalloc]init];
? ? }
UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, (self.view.bounds.size.width-50)/3, 20)];
?if(component ==2) {
? ? ? ? NSIntegerselecrDay? = [_pickerViewselectedRowInComponent:component];
?if(selecrDay == row) {
? ? ? ? ? ? text.textColor = [UIColor colorWithRed:13/255.f green:152/255.f blue:215/255.f alpha:1];
? ? ? ? }
? ? }
? ? text.textAlignment = NSTextAlignmentCenter;
?if(component==0) {
? ? ? ? text.text= [_hArrobjectAtIndex:row];
? ? }
?if(component==1) {
? ? ? ? text.text= [_mArrobjectAtIndex:row];
? ? }
? ? [viewaddSubview:text];
?returnview;
}
///被选择的行
-(void)pickerView:(UIPickerView*)pickerViewdidSelectRow:(NSInteger)rowinComponent:(NSInteger)component{
? ? UIView* view =? [pickerViewviewForRow:rowforComponent:component];
? ? UILabel* label = view.subviews.firstObject;
? ? label.textColor =[UIColor redColor];
? ? label.font = [UIFont systemFontOfSize:30.0];
}