美文网首页
UIPickerView基本使用

UIPickerView基本使用

作者: 不去未来 | 来源:发表于2017-05-09 17:09 被阅读0次
首先要在一个View里面创建UIPickerView.下面是简单的创建和使用

        //  设置左上角取消按钮
        UIButton *cancleBtn = [UIButton new];
        [cancleBtn setTitle:@"取消" forState:UIControlStateNormal];
        [cancleBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        cancleBtn.titleLabel.font = [UIFont systemFontOfSize:16];
        [cancleBtn addTarget:self action:@selector(cancle) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:cancleBtn];
        [cancleBtn makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self).offset(15);
            make.left.equalTo(self).offset(15);
        }];
        
        //  设置右上角确定按钮
        UIButton *confirmBtn = [UIButton new];
        [confirmBtn setTitle:@"确定" forState:UIControlStateNormal];
        [confirmBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        confirmBtn.titleLabel.font = [UIFont systemFontOfSize:16];
        [confirmBtn addTarget:self action:@selector(confirm) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview:confirmBtn];
        [confirmBtn makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self).offset(15);
            make.right.equalTo(self).offset(-15);
        }];
        
        //  设置提示语
        UILabel *titleView = [UILabel new];
        titleView.text = @"请选择下列内容";
        titleView.textColor = [UIColor lightGrayColor];
        titleView.font = [UIFont systemFontOfSize:15];
        [self addSubview:titleView];
        [titleView makeConstraints:^(MASConstraintMaker *make) {
            make.centerX.equalTo(self);
            make.top.equalTo(cancleBtn.bottom).offset(15);
        }];
        
        //  设置UIPickerView
        UIPickerView *picker = [UIPickerView new];
        picker.backgroundColor = [UIColor whiteColor];
        picker.dataSource = self;
        picker.delegate = self;
        [self addSubview:picker];
        [picker makeConstraints:^(MASConstraintMaker *make) {
            make.left.equalTo(cancleBtn);
            make.right.equalTo(confirmBtn);
            make.top.equalTo(titleView.bottom).offset(15);
            make.bottom.equalTo(self).offset(-10);
        }];

/**
 取消
 */
- (void)cancle
{
    [self dismiss];
}

/**
 确认
 */
- (void)confirm
{
    if ([self.delegate respondsToSelector:@selector(pickerViewDidSelectString:)]) {
        [self.delegate pickerViewDidSelectString:self];
    }
    [self dismiss];
}

#pragma mark - UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1; // 组数
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return self.dataSource.count;  // 行数
}

#pragma mark - UIPickerViewDelegate
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    return 40;  // 行高
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [self.dataSource objectAtIndex:row];  // 每行显示的数据
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    _pickerString = [self.dataSource objectAtIndex:row];  // 把选中的行传给只读的_pickerString
}

相关文章

网友评论

      本文标题:UIPickerView基本使用

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