画面全体をscrollViewで覆っていて、その下にUIButtonがあります。
このボタンタップを適用させたいので、
scrollViewのuserinteractionEnabledをfalseにしました。
ですがこの状態だとscrollできません!どうすればいいですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/21 06:34
回答1件
0
ベストアンサー
UIScrollViewのhitTestをオーバーライドしたらできそうだなと思ってやってみたらできました。
ボタンのある座標をタッチした時は、スクロールビューにヒットしなかったことにすればよいです。
Swift
1import UIKit 2 3class TouchThroughScrollView: UIScrollView { 4 5 weak var button:UIButton! 6 7 override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? { 8 if button != nil { 9 let buttonFrame = button!.convertRect(button!.bounds, toView: self) 10 if CGRectContainsPoint(buttonFrame, point) { 11 return nil 12 } 13 } 14 return super.hitTest(point, withEvent: event) 15 } 16}
UIScrollViewを上記のTouchThroughScrollViewに変更して、userinteractionEnabledをtrueにしてください。
ViewControllerのviewDidLoadのタイミングで、TouchThroughScrollViewのbuttonプロパティに、タップに反応させたいボタンを設定してください。
投稿2016/05/23 13:39
総合スコア6299
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/24 02:43
2016/05/24 03:25
2016/05/24 03:56
2016/05/25 07:17
2016/05/26 04:38
2016/05/26 04:57
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。