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 中的行分隔符的主要内容,如果未能解决你的问题,请参考以下文章
原型 tableviewcell 内的 UIPickerView 没有选择指示器
Swift:如何为 UIPickerView 中的行分配不同的数值?