UIPickerView 中的行分隔符

Posted

技术标签:

【中文标题】UIPickerView 中的行分隔符【英文标题】:Row Separator in UIPickerView 【发布时间】:2013-12-11 10:13:10 【问题描述】:

如何在我的选取器视图中隐藏分隔符。这是截图。

这是我的自定义 UIPickerView 的代码。

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

UILabel *label=[[UILabel alloc]init];
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.textAlignment=NSTextAlignmentCenter;

switch (component) 
    case 0:
        label.text=[_hourArray objectAtIndex:row];
        label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:70];
        break;

    case 1:
        label.text=[_minutesArray objectAtIndex:row];
        label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:70];
        break;

    case 2:
        label.text=[_ampmArray objectAtIndex:row];
        label.font = [UIFont fontWithName:@"MYRIADPRO-REGULAR" size:15];

        break;

    default:
        break;

return label;


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
return 3;

请帮帮我。谢谢

【问题讨论】:

试试这个***.com/a/11451471/887325 这里提出了类似的问题 (***.com/questions/20612279/…)。 Bimawa 的链接很有用。我尝试了这种方法,它奏效了。 【参考方案1】:

隐藏 UIPickerView 的选择指示器:

_pickerView.showsSelectionIndicator = FALSE;

您可以在代码中(如上)或在 Interface Builder 中进行:

编辑

根据Apple documentation:

ios 7 及更高版本上,您无法自定义选取器视图的选择 指标。始终显示选择指示符,因此设置此 属性为 NO 无效。

【讨论】:

【参考方案2】:

在 Swift 5 中,您可以使用此解决方法。只需将此代码添加到您的视图控制器类:

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()
    for i in 1...2 
        myPickerView.subviews[i].isHidden = true
    

【讨论】:

【参考方案3】:

如果您确实需要,这里有一个实用的解决方案:创建UIPickerView 的子类,并在其中覆盖didAddSubview。如果添加的子视图的高度

注意:在未来的 iOS 版本中可能会中断,因此请小心处理。

【讨论】:

以上是关于UIPickerView 中的行分隔符的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIPickerView 从 json 加载数据

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

Swift:如何为 UIPickerView 中的行分配不同的数值?

如何与 Xamarin UITest 中的自定义键盘进行交互?

如何在 UIPickerView 中显示所需的行?

点击完成时如何在uipickerview中获取当前选定的行(具有多个选择器)