Вы видите, как экран становится темнее, когда открыт дочерний вид?Вы можете добавить черный вид с 0,5 (например) альфа под вашим календарем и добавить UIGestureTapRecognizer
к нему следующим образом (я полагаю, для этого shadowCalendarView
?):
// Somewhere in the code, for example on viewDidLoad if its a UIViewController, or anywhere in your dismissal function:
shadowCalendarView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(yourClassName.handleDismiss)))
@objc func handleDismiss() {
// Dismisses the calendar with fade animation
UIView.animate(withDuration: 0.3, animations: {
self.calendarView.alpha = 0.0
self.shadowCalendarView.alpha = 0.0
}) { ( finished ) in
self.calendarView.isHidden = true
self.shadowCalendarView.isHidden = true
// If you are implementing calendar as a child view, remove it in the completion block of the animation like so:
self.willMove(toParentViewController: nil)
self.view.removeFromSuperview()
self.removeFromParentViewController()
}
}
Еслиэтот ответ недостаточно ясен, попробуйте предоставить больше информации, и я постараюсь внести соответствующие изменения.Например, реализация, это новый ViewController как childView?Это только вид?