通常、開発者はサブビューを前面に表示しようとします。逆に、スーパービューを前面に出すにはどうすればよいでしょうか。
の逆を探していbringSubviewToFront(_:)
ます。次のように見えるはずですbringSuperviewToFront(_:)
通常、開発者はサブビューを前面に表示しようとします。逆に、スーパービューを前面に出すにはどうすればよいでしょうか。
の逆を探していbringSubviewToFront(_:)
ます。次のように見えるはずですbringSuperviewToFront(_:)
私はあなたがそれを行うことができるとは思わない。ビューはレイヤーに配置され、各サブ ビュー レイヤーはスーパー ビュー レイヤーの一部です。マテリアライズしたい効果は、 Bring To Front効果を取得したいビューのすべてのサブビューを非表示/削除することで実現できます。
通常、レイヤーの位置に基づいて同じ親ビュー内のサブビューを表示/非表示にする必要があるため、これはサブビューでうまく機能します!
BringSubviewToFront( :) の逆を探しています。これは、bringSuperviewToFront( :)のようになります。
それは存在しません。ボタンにサブビューを与える代わりに、コンテナのサブビューとボタン サブビューの両方を作成します。次に、目的に合わせて相対的な z 位置を調整できます。
失礼にならないという精神で。
func bringSubviewToFront(view: UIView) {
let superview = view.superview
superview?.addSubview(view)
}
そうすれば前面に出ます。次のように:
bringSubviewToFront(mySubview)
上記のコードが行うことは、スーパービューの階層内のどこからでもビューを切り離し、すべてのサブビューの最上位に再接続することです。これにより、思い通りに前面に出す効果があります。ビューが階層の一部でない場合、関数は何もしません。