如何去掉UIPickerView及UIDatePickerView中的分割线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去掉UIPickerView及UIDatePickerView中的分割线相关的知识,希望对你有一定的参考价值。

可以通过Reveal查看视图层级结构发现分割线为两个高为0.5的UIView,那么通过遍历subViews拿到并隐藏这两个view及可去掉分割线。下面分别介绍一下UIDatePickerView和UIPickerView的去除方法:

1、UIDatePickerView

为了方便复用可以创建一个UIDatePickerView的分类,代码如下:

#import "UIDatePicker+myPicker.h"
@implementation UIDatePicker (myPicker)
- (void)clearSpearatorLine

for (UIView subView1 in self.subviews)

if ([subView1 isKindOfClass:[UIPickerView class]])//取出UIPickerView

for(UIView subView2 in subView1.subviews)

if (subView2.frame.size.height < 1)//取出分割线view

subView2.hidden = YES;//隐藏分割线





@end

2、UIPickerView

和UIDatePickerVIew不同的是UIPickerView的代理方法加载之前它的subViews为空,所以一开始的时候我们无法取到分割线。
经测试可以在下面的代理方法中获取到

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

PickerCell cell = [PickerCell cellWithRow:row];
[pickerView clearSpearatorLine];//UIPickerView分类方法
return cell;
参考技术A 这个pickerView是在pickerViewController这个UIViewController中。
//获取选中的列中的所在的行

NSInteger row=[_pickerViewController.pickerView selectedRowInComponent:0];
//然后是获取这个行中的值,就是数组中的值
NSString *value=[_pickerViewController.array objectAtIndex:row];

以上是关于如何去掉UIPickerView及UIDatePickerView中的分割线的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView去掉背景上的黑线

IOS代码布局 UIPickerView

如何从另一个 UIPickerview 更改 UIPickerView 的字符串?

如何在 UIPickerview 中添加一行

如何检测 UIPickerView 上的变化?

如何使用 UIPickerView 来确定 UITextField 的值?