mot*_*tox 35
[[pickerview.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerview.subviews objectAtIndex:2] setHidden:TRUE];
Run Code Online (Sandbox Code Playgroud)
使用此方法titleForRow或viewForRow委托方法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)
这不是一个真正好的解决方案,并且绝对不能向前兼容,但是现在它完成了工作.希望这可以帮助.
这在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)
它在ios7之前运行。
pickerView.showsSelectionIndicator = NO;
Run Code Online (Sandbox Code Playgroud)
有关ios7中的更多信息,请参阅此文档