2017-09-26 5 views
0

現在、uiview(画面の下部)の背後にあるスクロールビュー(画面全体)があります。私はスクロールのラベルがuiviewで覆われているかどうかをチェックしようとしています(これはiphone seで起こります)。uiviewがスクロールビューのラベルを覆っているかどうかを確認する方法はありますか? scrollview上の標識のかどうかを確認するために、そのUIViewの上の点よりも小さいが、それは私がサイズのための2つの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

次の2つのビューは、コード内で重複するかどうかを確認したい場合は、私はこれは動作するはずだと思う:

if view1.frame.intersects(view2.frame) { 
    // handle overlap 
} 
関連する問題