Skip to content

Instantly share code, notes, and snippets.

@TomaszPietrowski
Last active January 13, 2018 17:05
Show Gist options
  • Save TomaszPietrowski/2b2622f9ab4b5cf8c46fa80d40cca080 to your computer and use it in GitHub Desktop.
Save TomaszPietrowski/2b2622f9ab4b5cf8c46fa80d40cca080 to your computer and use it in GitHub Desktop.
UIDatePicker with UIToolbar example.
import UIKit
import PlaygroundSupport
class MyViewController: UIViewController {
let containerView = UIView()
let datePicker = UIDatePicker()
let toolbar: UIToolbar = {
let toolbar = UIToolbar()
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(didTapDoneButton))
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(didTapCancelButton))
toolbar.items = [doneButton, cancelButton]
toolbar.isUserInteractionEnabled = true
return toolbar
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .lightGray
datePicker.backgroundColor = .white
setupConstraints()
}
private func setupConstraints() {
containerView.translatesAutoresizingMaskIntoConstraints = false
toolbar.translatesAutoresizingMaskIntoConstraints = false
datePicker.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(containerView)
containerView.addSubview(toolbar)
containerView.addSubview(datePicker)
NSLayoutConstraint.activate([
containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
containerView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5),
toolbar.topAnchor.constraint(equalTo: containerView.topAnchor),
toolbar.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
toolbar.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
toolbar.heightAnchor.constraint(equalToConstant: 50.0),
datePicker.topAnchor.constraint(equalTo: toolbar.bottomAnchor),
datePicker.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
datePicker.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
datePicker.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
])
}
@objc func didTapDoneButton() {
print("DoneButton tapped")
}
@objc func didTapCancelButton() {
print("CancelButton tapped")
}
}
PlaygroundPage.current.liveView = MyViewController()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment