移除 UIPickerView 边框
Remove UIPickerView Borders
默认 "UIPickerView" 在顶部和底部有一条灰色细线,我想将其删除,但我不知道如何删除。
有没有我可以设置清除的属性地方?
在选择器视图数据源方法中
func numberOfComponents(in pickerView: UIPickerView) -> Int {
pickerView.subviews.forEach({
[=10=].isHidden = [=10=].frame.height < 1.0
})
return 1
}
线条会消失
我觉得你需要去掉选中行的两行,如果是的话你可以使用pickerView的titleForRow或者viewForRow委托方法,在委托方法中使用如下代码
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
[[pickerView.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerView.subviews objectAtIndex:2] setHidden:TRUE];
}
或
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component
reusingView:(UIView *)view
{
[[pickerView.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerView.subviews objectAtIndex:2] setHidden:TRUE];
}
您必须继承 UIPickerView
,因此:
class MyPickerView: UIPickerView {
override func layoutSubviews() {
super.layoutSubviews()
self.layer.borderWidth = 0 // Main view rounded border
// Component borders
self.subviews.forEach {
[=10=].layer.borderWidth = 0
[=10=].isHidden = [=10=].frame.height <= 1.0
}
}
}
默认 "UIPickerView" 在顶部和底部有一条灰色细线,我想将其删除,但我不知道如何删除。
有没有我可以设置清除的属性地方?
在选择器视图数据源方法中
func numberOfComponents(in pickerView: UIPickerView) -> Int {
pickerView.subviews.forEach({
[=10=].isHidden = [=10=].frame.height < 1.0
})
return 1
}
线条会消失
我觉得你需要去掉选中行的两行,如果是的话你可以使用pickerView的titleForRow或者viewForRow委托方法,在委托方法中使用如下代码
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
[[pickerView.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerView.subviews objectAtIndex:2] setHidden:TRUE];
}
或
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component
reusingView:(UIView *)view
{
[[pickerView.subviews objectAtIndex:1] setHidden:TRUE];
[[pickerView.subviews objectAtIndex:2] setHidden:TRUE];
}
您必须继承 UIPickerView
,因此:
class MyPickerView: UIPickerView {
override func layoutSubviews() {
super.layoutSubviews()
self.layer.borderWidth = 0 // Main view rounded border
// Component borders
self.subviews.forEach {
[=10=].layer.borderWidth = 0
[=10=].isHidden = [=10=].frame.height <= 1.0
}
}
}