2017-09-26 150 views
0

當前有一個滾動視圖(整個屏幕),位於uiview(屏幕的底部)後面。我試圖檢查一下滾動條上的標籤是否被uiview覆蓋(這發生在iPhone上)有沒有辦法檢查uiview是否覆蓋scrollview上的標籤?我試過使用中心cgpoint在滾動視圖的標籤,看看它不是UIView的一個小點,但它不會讓我比較兩個cgpoints尺寸爲:如何檢查一個視圖是否位於另一個視圖之上?

if atmLabel.center < CGPoint(x: 156, y: 570) { 
    buttonView.dropShadow(shadowOpacity: 0.5) 
} 

回答

2

對於點檢查,你應該使用

包含CGRect的功能...總之這應該工作

let view = UIView() 
let label = UILabel() 

if label.frame.contains(view.frame) { 
    //Do your stuff... 
} 

您可以使用Xcode中視圖hiearchy這個按鈕enter image description here

您也可以直接打印出當前的viewController子視圖

print(self.view.subviews) 

這種打印出通過在上升層的順序排序的UIView子類的數組查看......我建議調試:)

+0

這對調試很好,但如果標籤被覆蓋,我需要它來執行某些操作。有沒有辦法找出代碼? – SwiftyJD

+0

好吧,我升級了答案,它應該工作,但沒有測試... –

0

如果你想看看兩個視圖中的代碼重複,我想到的第一種方式這應該工作:

if view1.frame.intersects(view2.frame) { 
    // handle overlap 
} 
相關問題