質問: 画面全体をscrollViewで覆っていて、その下にUIButtonがあります。 このボタンタップを適用させたいので、 scrollViewのuserinteractionEnabledをfalseにしました。 ですがこの状態だとscrollできません!どうすればいいですか?
回答: UIScrollViewのhitTestをオーバーライドしたらできそうだなと思ってやってみたらできました。 ボタンのある座標をタッチした時は、スクロールビューにヒットしなかったことにすればよいです。 ``` import UIKit class TouchThroughScrollView: UIScrollView { weak var button:UIButton! override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? { if button != nil { let buttonFrame = button!.convertRect(button!.bounds, toView: self) if CGRectContainsPoint(buttonFrame, point) { return nil } } return super.hitTest(point, withEvent: event) } } ``` UIScrollViewを上記のTouchThroughScrollViewに変更して、userinteractionEnabledをtrueにしてください。 ViewControllerのviewDidLoadのタイミングで、TouchThroughScrollViewのbuttonプロパティに、タップに反応させたいボタンを設定してください。