首先要在一个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基本使用
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 小学语文修改病句的方法 修改病句是小学语文考试中常见的题型,在修改病句之前,我们应该清晰的了解有哪些病句现象,下面...