美文网首页
UIDatePicker 和 UIPickerView

UIDatePicker 和 UIPickerView

作者: ly渐行渐远 | 来源:发表于2015-12-08 19:55 被阅读518次

    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

          本文链接:https://www.haomeiwen.com/subject/dhyshttx.html