- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iOS 新手。谁能帮助我如何使用 PickerView
来显示年份和月份?如何设置每列的大小?
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 2;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
forComponent:(NSInteger)component
{
}
最佳答案
简单地覆盖委托(delegate)方法,来自 Moonpreview 应用程序的真实示例:
#pragma mark UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 6;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
switch (component) {
case 0://cn
return 5;
case 1://yy
return 100;
case 2://mm
return 12;
case 3://dd
return 31;
case 4://hh
return 6;
case 5://tzone
return 1;
}
return 0;
}
#pragma mark UIPickerViewDelegate
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//NSLog(@"pickerView didSelectRow:%i inComponent:%i", row, component);
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
switch (component) {
case 0://cn
{
return [NSString stringWithFormat:@"%d", kFirstCentury + row*100];
}
case 1://yy
{
return [NSString stringWithFormat:@"%02d", row];
}
case 2://mm
{
return [NSString stringWithFormat:@"%02d", row+1];
}
case 3://dd
{
return [NSString stringWithFormat:@"%02d", row+1];
}
case 4://hh
{
return [NSString stringWithFormat:@"%02d", row*4];
}
case 5://tzone
{
switch (row) {
case 1:
return @"EST";//eastern
case 2:
return @"CST";//central
case 3:
return @"MST";//mountain
case 4:
return @"PST";//pacific
default:
return @"UTC";//universal row 0
}
}
}
return @"xxx";
}
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {
return 40.0;
}
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
CGFloat w = 70.0;
switch (component) {
case 0://cn
{
return 80.0;
}
case 1://yy
{
return w;
}
case 2://mm
{
return w;
}
case 3://dd
{
return w;
}
case 4://hh
{
return w;
}
case 5://tzone
{
return 80.0;
}
}
return w;
}
创建选择器:
picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 160.0, 480.0, 160.0)];
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = YES;
[self.view addSubview:picker];
在 Moonpreview ii 中必须使用默认值填充选择器:
- (void)setPickerDefaults {
//defaults
//calculate current values
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit) fromDate:today];
NSInteger year = [components year];
NSInteger month = [components month];
NSInteger day = [components day];
NSInteger hour = [components hour];
NSLog(@"setPickerDefaults year: %i month: %i day: %i hour: %i", year-2000, month, day, hour);
cn = [@"2000" retain];
yy = [[NSString stringWithFormat:@"%02d", year - 2000] retain];
mm = [[NSString stringWithFormat:@"%02d", month] retain];
dd = [[NSString stringWithFormat:@"%02d", day] retain];
hh = [[NSString stringWithFormat:@"%02d", ceil((hour / 4)) * 4] retain];
tzone = [@"0" retain];
[picker selectRow:3 inComponent:0 animated:YES];
[picker selectRow:year-2000 inComponent:1 animated:YES];
[picker selectRow:month-1 inComponent:2 animated:YES];
[picker selectRow:day-1 inComponent:3 animated:YES];
[picker selectRow:ceil((hour / 4)) inComponent:4 animated:YES];
[picker selectRow:0 inComponent:5 animated:YES];
[gregorian release];
}
祝你好运!
关于iOS:如何使用 PickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14785895/
我在一个 View Controller 上使用多个pickerview。我在相应的选取器 View 中获得正确的数据,但选取器 View 中的行对称 View 不正确。第一个选择器 View 中的数
我在 View 中有多个文本字段,其中输入 View 设置为 pickerView,但是根据文本字段,应该显示不同数量的选择行。当您单击选取器 View 外部,然后单击下一个文本字段时,此方法工作正常
我有两个 pickerView,即 pickerView1 = car_make、pickerView2 = car_model。 如果我选择 car_make = Kia,我希望 pickerVie
我创建了一个使用数组作为数据源的 UIPickerView,我想在第三个组件上选择一个项目后隐藏第四个组件上的一些项目。我该怎么做? class ViewControllerEspessuras: U
我尝试使用此方法selectedRow(inComponent: 0),但它对我不起作用。当选择器不活动时,有什么方法可以从选择器中获取第一个/默认值吗? func pickerView(_ pick
我一直在寻找答案,但找不到任何明确的解决方案。我正在制作一个具有三个具有相同 UIpickerViews 的 UItextFields 的 View Controller 。如果已在另一个 UItex
UIPickerView 显示数据,但不会传输到 UITextField。 我检查了其他帖子来比较我的代码,仍然找不到解决方案。非常感谢您的帮助。 import UIKit class ViewCon
当我尝试对 pickerView 中的特定行执行操作时,我遇到了一个问题。 例如,我在 pickerView 中有多个项目,而在核心数据中我有计数器属性,所以我需要做的是,一旦我从 pickerVie
我在现有应用程序中有一个使用小数位的自定义键盘。我正在尝试实现英制测量。 所以我从键盘上删除了小数点,并添加了一个选择器 View ,我希望在其中包含 1/32 -> 31/32 之间的所有可能的分数
当我点击文本字段时,会出现输入区域,但只有 1 行,内容为空白。 (我期望 3 行:a、b 和 c) 我将 numberOfRowsInComponent 和 titleForRow 函数中的返回值更
我正在尝试制作一个 pickerView,用户可以在其中选择他/她的体重...在 Swift 2.2 中,我正在考虑制作这样的 Range: var weightList: [Int] = Array
我是 iOS 新手。谁能帮助我如何使用 PickerView 来显示年份和月份?如何设置每列的大小? - (NSInteger)numberOfComponentsInPickerView:(UIPi
我使用 inputView 在单击文本字段时显示 pickerView。然后我想用数字 1-100 填充 pickerview。我有一些我认为可以工作的代码,但是当我运行程序并单击文本字段时,它只会弹
我制作了一个字体选择器,可以显示轮子内的所有字体。 我现在需要添加 2 个额外的部分来更改字体大小和样式(粗体、斜体、下划线)。 样式和大小是 UIFont 类的成员吗?如果是这样,如何访问它们? 这
这是我的代码: @synthesize pickerLetter, pickerNumber, pickerSymbol; - (void)viewDidLoad { [super viewDidL
我想要做的是根据从选择器中选择的内容显示特定的文本字符串。例如,可以在选择器中选择蓝色、绿色和黄色选项。当您选择蓝色时,一些文本(例如,我喜欢海洋!)会输出到标签。 我已经一切正常,除了在选择器中选择
我试图调出一个选择器 View 而不是键盘来放入文本字段,但我的选择器 View 没有显示。 #import "SettingsViewController.h" #import "FindCla
我正在从一个 JSON 文件中解析一些数据 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"airports" ofType
我正在尝试获取其中包含数字列表的选择器 View 。 到目前为止,我可以获得包含所有数字的字符串,但是当将其放入选择器 View 时,选择器 View 始终为空。你能看看我的代码,让我知道哪里出错了吗
我使用了一个带有四个组件的 UIPickerView 来在没有键盘的情况下输入数字。我添加了一个小数点,只有一个“。”在 UILabelView 中。查看屏幕了解想法。 我的 UIPickerView
我是一名优秀的程序员,十分优秀!