Search code examples
iosiphoneswiftuipickerviewpicker

Can i change UIPickerView separator height?


I have implemented a picker view but now I want to change the picker view separator line height. I want more thicker separator liner rather than this default line. So is this possible to change height of separator???

enter image description here

I want line as below image.

enter image description here


Solution

  • Change the line view's height in the pickerView's delegate method:

    public func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
        for view in pickerView.subviews {
            if view.frame.size.height < 1 {
                var frame = view.frame
                frame.size.height = 2
                view.frame = frame
                view.backgroundColor = UIColor.black
            }
        }
    
        let label = UILabel()
        label.text = "Test Text" //remember to change it to the real data
        label.textAlignment = NSTextAlignment.center
        return label
    }
    

    Remember to set PickerView's delegate:

    self.pickerView.delegate = self //or do this in XIB or Storyboard.
    

    The effects:
    enter image description here