mot*_*tox 35

[[pickerview.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerview.subviews objectAtIndex:2] setHidden:TRUE];
Run Code Online (Sandbox Code Playgroud)

使用此方法titleForRowviewForRow委托方法pickerView.


Chr*_*isH 23

基于其他答案,我决定枚举子视图,看到这些行的高度为,0.5所以我的解决方案现在在Swift中看起来像这样:

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

     pickerView.subviews.forEach({

          $0.hidden = $0.frame.height < 1.0
     })

     return myRowCount
}
Run Code Online (Sandbox Code Playgroud)

在Objective-C中

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

     [pickerView.subviews enumerateObjectsUsingBlock:^(UIView *subview, NSUInteger idx, BOOL *stop) {

        subview.hidden = (CGRectGetHeight(subview.frame) < 1.0) 
     }];

    return myRowCount
}
Run Code Online (Sandbox Code Playgroud)

显然不是特别未来的证据,但可能比隐藏给定索引的子视图更重要.

编辑:更新以处理@Loris提供的案例


mor*_*nab 11

在iOS7设置中,根据文档(https://developer.apple.com/library/ios/documentation/userexperience/conceptual/UIKitUICatalog/UIPickerView.html),参数pickerview.showsSelectionIndicator无效.

但是,由于UIPickerView最后是带有子视图的UIView,我检查了哪些子视图.我发现3,第一个包含UIPickerView的所有组件,另外两个是两行.

因此,通过设置隐藏的第二个和第三个(索引1和2),删除了两行.

[[pickerview.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerview.subviews objectAtIndex:2] setHidden:TRUE];
Run Code Online (Sandbox Code Playgroud)

这不是一个真正好的解决方案,并且绝对不能向前兼容,但是现在它完成了工作.希望这可以帮助.

  • 顺便说说.当你删除这些线条时,外观很奇怪,因为卷筒的3d效果会改变视图的位置.我正在玩,你也可以改变这些行的颜色:`((UIView*)[self.subviews objectAtIndex:1]).backgroundColor = [UIColor whiteColor]; ((UIView*)[self.subviews objectAtIndex:2]).backgroundColor = [UIColor whiteColor];` (5认同)
  • @ James03改变了选择线的颜色.如果你没有UIPickerView的子类,你应该从-viewDidLayoutSubviews调用代码,它不能从-viewDidLoad工作 (5认同)

Jus*_*itz 8

这在iOS 9 Beta中适用于Swift.

datePicker.subviews[0].subviews[1].hidden = true
datePicker.subviews[0].subviews[2].hidden = true
Run Code Online (Sandbox Code Playgroud)


小智 6

Swift 3版本(工作):

pickerView.subviews[1].isHidden = true
pickerView.subviews[2].isHidden = true
Run Code Online (Sandbox Code Playgroud)


小智 6

func numberOfComponents(in pickerView: UIPickerView) -> Int
    {
        pickerView.subviews.forEach({
            $0.isHidden = $0.frame.height < 1.0
        })
        return 1
    }
Run Code Online (Sandbox Code Playgroud)


Dha*_*ngh 5

它在ios7之前运行。

pickerView.showsSelectionIndicator = NO;
Run Code Online (Sandbox Code Playgroud)

有关ios7中的更多信息,请参阅此文档

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/UIKitUICatalog/UIPickerView.html