移除 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
        }
    }

}