我在玩意見。我的應用程序很簡單:觸摸視圖時的「奇怪」行爲
我有一個自定義視圖控制器及其相關的觀點,把它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 }
}
要我添加了一個子畫面主視圖,稱之爲子視圖。
- 要子視圖我已經添加了2個子視圖,調用它們subSubView1和subSubView2。
當我觸摸它們的邊界出現的意見和消失,因爲我期望的那樣。但是,如果我重新定位subSubView1(或subSubView2),使它部分位於子視圖的內部或部分位於子視圖的外部,則行爲會變得「奇怪」。如果我觸摸與SubView重疊的subSubView1的部分,則subSubView1將接收邊框。如果我觸摸與mainView重疊的subSubView1的部分,則它是接收邊框的mainView。有人請幫我理解這種行爲嗎?
Xcode 7.3,使用iPhone 6模擬器進行調試。
試試這個:'mainView.bringSubviewToFront(touchedView)'。當你觸摸一個'subView'時放置這條線。 – Santosh
如果視圖位於其父項之外,則該視圖不可選。我會假設觸摸事件從底部(mainView)冒泡。然後它轉到mainView的孩子。如果觸摸不在該孩子中,則停止。因此,不在其父節點中的部分不會接收不在其父節點中的觸摸事件。 – Putz1103