2

通常、開発者はサブビューを前面に表示しようとします。逆に、スーパービューを前面に出すにはどうすればよいでしょうか。

の逆を探していbringSubviewToFront(_:)ます。次のように見えるはずですbringSuperviewToFront(_:)

4

3 に答える 3

2

私はあなたがそれを行うことができるとは思わない。ビューはレイヤーに配置され、各サブ ビュー レイヤーはスーパー ビュー レイヤーの一部です。マテリアライズしたい効果は、 Bring To Front効果を取得したいビューのすべてのサブビューを非表示/削除することで実現できます。

通常、レイヤーの位置に基づいて同じ親ビュー内のサブビューを表示/非表示にする必要があるため、これはサブビューでうまく機能します!

于 2015-10-08T11:44:02.297 に答える
2

BringSubviewToFront( :) の逆を探しています。これは、bringSuperviewToFront( :)のようになります。

それは存在しません。ボタンにサブビューを与える代わりに、コンテナのサブビューとボタン サブビューの両方を作成します。次に、目的に合わせて相対的な z 位置を調整できます。

于 2015-10-08T11:45:01.617 に答える
0

失礼にならないという精神で。

func bringSubviewToFront(view: UIView) {
    let superview = view.superview
    superview?.addSubview(view)
}

そうすれば前面に出ます。次のように:

bringSubviewToFront(mySubview)

上記のコードが行うことは、スーパービューの階層内のどこからでもビューを切り離し、すべてのサブビューの最上位に再接続することです。これにより、思い通りに前面に出す効果があります。ビューが階層の一部でない場合、関数は何もしません。

于 2015-10-08T11:43:19.493 に答える