ScrollViewのタッチイベントを検知するのは結構よくある需要だと思うのでメモしておきます。
ScrollViewのタッチイベントを拾ったらsuperviewのタッチイベントを呼び出す、といった形にtouchesBeganをオーバーライドしたMyScrollViewを作ります。
class MyScrollView: UIScrollView { override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { superview?.touchesBegan(touches, with: event) } }
ViewControllerのタッチイベントでendEditingを呼び出すとキーボードが仕舞われます。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.view.endEditing(true) }