1、UIPickerView 的创建与设置
- 遵守协议 UIPickerViewDataSource, UIPickerViewDelegate
复制
UIPickerView *pickerView = [[UIPickerView alloc] init];
[self addSubview:pickerView];
pickerView.frame = CGRectMake(10, 30, self.width, 162);
pickerView.dataSource = self;
pickerView.delegate = self;
[pickerView selectRow:1 inComponent:0 animated:YES];
[pickerView selectRow:2 inComponent:1 animated:YES];
[pickerView selectRow:3 inComponent:2 animated:YES];
pickerView.center = self.center;
pickerView.backgroundColor = [UIColor orangeColor];
pickerView.showsSelectionIndicator = YES;
[pickerView reloadComponent:0];
[pickerView reloadAllComponents];
NSInteger numberOfComponents = pickerView.numberOfComponents;
NSInteger numberOfRows = [pickerView numberOfRowsInComponent:0];
CGSize rowSize = [pickerView rowSizeForComponent:0];
NSInteger selectedIndex = [pickerView selectedRowInComponent:0];
UIView *view = [pickerView viewForRow:3 forComponent:0];
2、UIPickerViewDataSource 协议方法
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 3;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 10;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return @"123456789";
}
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
}
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
return 50;
}
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
return 50;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
return [[UIView alloc] init];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)