UIPickerView 选择指示器问题

Posted

技术标签:

【中文标题】UIPickerView 选择指示器问题【英文标题】:UIPicker View Selection Indicator Issue 【发布时间】:2012-01-30 19:35:31 【问题描述】:

我只想知道为什么选择指示器在我的 iPad 应用程序中看起来像这样。 “像这样”我的意思是前半部分有一种颜色图案,而另一半有另一种颜色图案。我正在像这样以编程方式创建我的 UIPickerView:

pickerView = [[UIPickerView alloc] init];
pickerView.showsSelectionIndicator = YES;
pickerView.delegate = self;
pickerView.dataSource = self;

txtFolder.inputView = pickerView;

我需要选择器视图来显示相同​​的颜色图案。有什么想法吗?

【问题讨论】:

可能是SDK出了点问题……你试过重装Xcode和ios SDK吗? 【参考方案1】:

我今天整天都在同一个问题作斗争。

我有类似的代码:

pickerView = [[UIPickerView alloc] init];
pickerView.showsSelectionIndicator = YES;
pickerView.delegate = self;
pickerView.dataSource = self;
[pickerView selectRow:0 inComponent:0 animated:NO];

txtFolder.inputView = pickerView;

因此,如果您在选择一行后执行 'pickerView.showsSelectionIndicator = YES' 即可解决问题。

解决办法:

pickerView = [[UIPickerView alloc] init];
pickerView.delegate = self;
pickerView.dataSource = self;
[pickerView selectRow:0 inComponent:0 animated:NO];
pickerView.showsSelectionIndicator = YES;

txtFolder.inputView = pickerView;

Alex,试试这个,可能对你有帮助。

更新:

但唯一真正的方法是在弹出框内显示选择器。问题的原因是选择器不适合主屏幕!

【讨论】:

【参考方案2】:

今天也发生了同样的事情。

我所做的修复它是为选择器提供适当的宽度。

类似这样的:

int viewWidth = self.view.frame.size.width;
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, width, 150)];

【讨论】:

有点晚了,这很有魅力,要使用默认键盘高度,请指定高度为 0。

以上是关于UIPickerView 选择指示器问题的主要内容,如果未能解决你的问题,请参考以下文章

调整 UIPickerView 中选择指示器的高度

原型 tableviewcell 内的 UIPickerView 没有选择指示器

IOS7 UIPickerView如何隐藏选择指示器

具有三个组件的自定义 UIPickerView,每个组件在选择指示器上显示标签

iOS 7 用 UIPickerView 打开 UITableViewController 很慢

滚动时读取 UIPickerView 的位置?