回答編集履歴

2

訂正

2020/07/07 20:04

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- isEnabled == true でも falseでも親viewのtouchesBeganイベントをキャンセルするので、
1
+ isEnabled == true でも falseでも子View(領域内)のタップ時は親viewのtouchesBeganイベントをキャンセルするので、
2
2
 
3
3
  親view(blueView)内で子view(greenBtn)領域内のイベントを全てキャンセルして解決。
4
4
 

1

追記

2020/07/07 20:04

投稿

退会済みユーザー
test CHANGED
@@ -85,3 +85,29 @@
85
85
  }
86
86
 
87
87
  ```
88
+
89
+
90
+
91
+ 実際はUITableViewCell上のボタンなので以下で対応
92
+
93
+
94
+
95
+ ```swift
96
+
97
+ class HogeCell: UITableViewCell {
98
+
99
+
100
+
101
+ override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
102
+
103
+ let point = touches.first!.location(in: self.contentView)
104
+
105
+ if hogeBtn.frame.contains(point) { return }
106
+
107
+ super.touchesBegan(touches, with: event) // -> ViewControllerのshouldHighlightRowAtへ処理がつながる
108
+
109
+ }
110
+
111
+ }
112
+
113
+ ```