UIDatePicker 和 UIPickerView

UIDatePicker

UIDatePicker:是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期、时间和持续时长的输入。日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作。你也可以对其进行定制,令其使用任何范围的日期。
UIDatePicker初始化:

UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(30, 300, 0, 0)];
[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];//添加触发事件
[self.view addSubview:datePicker];

UIDatePicker常用设置

setLocale:设置地区
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];

setCalendar:设置datePicker的日历(默认为当天)
[datePicker setCalendar:[NSCalendar currentCalendar]];

setDatePickerMode:设置时间模式,默认UIDatePickerModeDateAndTime
[datePicker setDatePickerMode:UIDatePickerModeDate];

setCountDownDuration:设置倒计时的秒数
[datePicker setCountDownDuration:2*60];

setTimeZone:设置时区
[datePicker setTimeZone:[NSTimeZone localTimeZone]];

设置最大,最小日期

//设置一个时间戳
NSTimeInterval timeInterval = 60;
NSDate *minDate = [[NSDate alloc]initWithTimeIntervalSinceNow:-timeInterval];
NSDate *maxDate = [[NSDate alloc]initWithTimeIntervalSinceNow:timeInterval];
//设置最大,最小日期
datePicker.minimumDate = minDate;
datePicker.maximumDate = maxDate;

设置分钟间隔
datePicker.minuteInterval = 5;

取出日期
NSDate *select = datePicker.date;

UIPickerView

//初始化一个pickerView
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 436, 414, 300)];
//设置背景色
pickerView.backgroundColor = [UIColor whiteColor];
//设置代理
pickerView.delegate = self;
pickerView.dataSource = self;
[self.view addSubView:pickerView];```

##UIPickerViewDataSource代理方法
-numberOfComponentsInPickerView:设置列的返回数量(必须实现)
  • (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
    return 3;
    }```

-pickerView:numberOfRowsInComponent:设置列里边组件的个数 component:组件(必须实现)

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    //如果是第一列
    if (component == 0)
    {
        return 10;
    }
    //如果是第二列
    else if (component == 1)
    {
        return 5;
    }
    else
    {
        return 3;
    }
}```

##UIPickerViewDelegate代理方法
返回组件的标题:有三个方法都可以用,不同方法的返回值不同
  • (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    if (component == 0) {
    return @"第一列";
    } else if (component == 1) {
    return @"第二列";
    } else {
    return @"第三列";
    }
    }```

pickerView:didSelectRow:inComponent:选择器选择的方法 row:被选中的行

    //选择第一列执行的方法
    if (component == 0) {
           NSLog(@"1");
     }
    //选择第二列执行的方法
    else if (component == 1) {
          NSLog(@"2");
    }
   else {
          NSLog(@"3");
    }
}```

pickerView:widthForComponent:设置组件的宽度
  • (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
    {
    if (component == 0) {
    return 100;
    } else if (component == 1) {
    return 200;
    } else {
    return 100;
    }
    }```

pickerView:rowHeightForComponent:设置列里边组件的高度

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    if (component == 0) {
        return 20;
    } else if (component == 1) {
        return 25;
    } else {
        return 30;
    }
}```

你可能感兴趣的:(UIDatePicker 和 UIPickerView)