私は再生しています。私のアプリケーションはシンプルです:ビューに触れるときの「奇妙な」動作
私はカスタムビューコントローラとそれに関連するビューを持っており、それをmainViewと呼びます。私のカスタムビューコントローラは、touchesBeganメソッドをオーバーライドします。私のtouchesBeganメソッドは、タッチされたビューにボーダーを追加し、以前にタッチされたビュー(存在する場合)からボーダーを削除します。したがって、どのビューが最後に触れられたのかを視覚的に示しています。
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { print("There are \(touches.count) touch(es)") if let selectedView = self.selectedView { selectedView.borderWidth = 0 } self.selectedView = touches.first?.view if let selectedView = self.selectedView { selectedView.borderColor = UIColor.blackColor() selectedView.borderWidth = 2 }
} Iは、サブビューを追加したメインビューに
、サブビューを呼び出します。
- 私は2つのサブビューを追加しました、それらをsubSubView1とsubSubView2と呼びます。
私は私が期待するよう国境が現れたり消えたり景色に触れたよう。しかし、subSubView1(またはsubSubView2)の位置を、部分的にサブビューの内側と部分的に外側に変更すると、その動作は「奇妙」になります。 subViewと重なっているsubSubView1の部分に触れると、subSubView1は境界を受け取ります。 mainViewと重なるsubSubView1の部分に触れると、境界を受け取るmainViewになります。誰かがこの行動を理解するのを助けてくれますか?
Xcode 7.3、iPhone 6 Simulatorでのデバッグ。
これを試してください: 'mainView.bringSubviewToFront(touchedView)'。 'subView'に触れるときにこの行を置きます。 – Santosh
ビューがその親の外側にある場合、ビューは選択できません。タッチイベントがボトムアップ(mainView)していると仮定します。その後、mainViewの子に移動します。その接触がその子供の中になければ、それは止まる。親にないサブ・サブ・ビューの部分は、その親にないタッチ・イベントを受信しません。 – Putz1103