美文网首页
UIDatePickerView和UIPickerView

UIDatePickerView和UIPickerView

作者: NateLam | 来源:发表于2016-10-15 15:10 被阅读248次

    用于选择日期, 可以选择显示是年月日还是具体时间都包含
    继承于UIPickerView, 但是不用像UIPickerView一样签代理, 但必须先new, 再设置frame, 两句必须分开;
    而且要想实时更新界面的值必须添加target事件

    主要就是下面这三个方法, 如需要的时候.hidden = NO即可

    #pragma mark - 懒加载
    - (UIDatePicker *)datePicker{
    
        if (!_datePicker) {
            _datePicker = [UIDatePicker new];
            _datePicker.frame = CGRectMake(0, SCREEN_HEIGHT - 200 * SCALE_HEIGHT, SCREEN_WIDTH, 200 * SCALE_HEIGHT);
            _datePicker.datePickerMode = UIDatePickerModeDate; // 设置模式 这里是 年月日 没有上下午
            _datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"]; // 设置地区 这里是
            [_datePicker addTarget:self action:@selector(rollAction:) forControlEvents:(UIControlEventValueChanged)];
            [self.view addSubview:_datePicker];
        }
        return _datePicker;
    }
    
    #pragma mark birthFordatter
    - (NSDateFormatter *)birthFordatter{
        if (!_birthFordatter) {
            _birthFordatter = [NSDateFormatter new];
            _birthFordatter.dateFormat = @"YYYY-MM-dd";
        }
        return _birthFordatter;
    }
    
    #pragma mark  监听滚动的方法   滚动日期键盘时候走的方法 
    - (void)rollAction:(UIDatePicker *)sender{
    
    //    NSLog(@"%@", [self.birthFordatter stringFromDate:sender.date]);
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:3 inSection:0];
        NAMineAccountTableViewCell *cell = [_tableView cellForRowAtIndexPath:indexPath];
        cell.labelOfContent.text = [self.birthFordatter stringFromDate:sender.date];
    }
    

    -----------------------我是分割线, 下面说UIPickerView------------------------

    不用设定frame

    #pragma mark genderPickerView
    - (UIPickerView *)genderPickerView{
        if (!_genderPickerView) {
            _genderPickerView = [UIPickerView new];
            _genderPickerView.delegate = self;
            _genderPickerView.dataSource = self;
            [self.view addSubview:_genderPickerView];
        
            _genderPickerView.hidden = YES;
        }
        return _genderPickerView;
    }
    

    UIPickerView, 需要签俩协议并实现一些协议方法

    协议方法

    #pragma mark - UIPickerViewDelegate
    #pragma mark 列
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
        return 1;
    }
    #pragma mark 每列多少行
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
        return 3;
    }
    
    #pragma mark pickerView内容
    -(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
        //    NSArray *countArray =self.foodNameArray[component];
        //    NSString *rowString =countArray[row];
        //    return  rowString;
        return _mArrOfGender[row];
    }
    #pragma mark pickerView滚动方法
    -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
    
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0];
        NAMineAccountTableViewCell *cell = [_tableView cellForRowAtIndexPath:indexPath];
        cell.labelOfContent.text = _mArrOfGender[row];
    }
    

    相关文章

      网友评论

          本文标题:UIDatePickerView和UIPickerView

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