Alex Grinberg
Alex Grinberg

Reputation: 31

How to create a horizontal date picker programmatically swift 4

I am trying to create a horizontal date picker. I wanted to use the default date picker, but in the horizontal orientation. Here is my datePicker object.

let datePicker: UIDatePicker = {
    let picker = UIDatePicker()
    picker.backgroundColor = UIColor.rgb(red: 140, green: 205, blue: 209)
    picker.datePickerMode = .time
    picker.contentMode = .center
    picker.layer.cornerRadius = 5
    picker.isOpaque = true
    picker.layer.opacity = 0.8
    picker.layer.shadowColor = UIColor.rgb(red: 140, green: 205, blue: 209).cgColor
    picker.layer.shadowOpacity = 0.8
    picker.isOpaque = true
    picker.translatesAutoresizingMaskIntoConstraints = false
    picker.layer.borderWidth = 0.3
    picker.layer.borderColor = UIColor.rgb(red: 250, green: 250, blue: 250).cgColor
    picker.addTarget(self, action: #selector(AddMedVC.printMedHour(sender:)), for: UIControl.Event.valueChanged)

    return picker

}()

Upvotes: 0

Views: 1050

Answers (1)

Duncan C
Duncan C

Reputation: 131481

Put your date picker inside another view and set size constraints on that other view to match the size of your date picker. Add horizontal and vertical centering constraints to your picker view so it's centered in your container view.

Control drag your container view into your view controller to create an outlet. (Let's call it pickerContainerView

In viewDidLoad, set the transform on the container view to -π/2:

    pickerContainerView.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2.0)

That will cause your whole date picker to be rotated 90 degrees, which is what I think you want.

Upvotes: 1

Related Questions