2017-10-10 8 views
-2

子ビューのアルファ値を変更し、親ビューは変更しません。私はあなたの質問を理解している場合、私は、あなたがあなたの4つのサブビューの設定透明度をしたいが、そのサブビュー(サブビューのサブビュー)に影響を与えない。この子ビューのアルファ値を変更し、親ビューをスウィフトで変更しない

  for v in view.subviews { 
        let view = v 
        view.layer.cornerRadius = 20 
        view.backgroundColor = UIColor.black 
        view.alpha = 0.8 
        } 

enter image description here

+0

あなたの質問は何ですか?投稿したコードの問題は何ですか? – rmaddy

+0

親ビューではなく子ビューのアルファ値を変更したい。ビューの階層 –

+0

を参照してください。それはあなたがしたいことです。もう一度、あなたの質問は何ですか?投稿したコードで何が問題になっていますか?あなたが投稿したコードは、 'view'自体ではなく、すべての子ビューの' alpha'を変更します。 – rmaddy

答えて

0

それぞれのビューのサブビューにもサブビューがあると仮定しています。それ以外の場合は@rmaddyのように、私はその問題が何であるか分かりません。サブビューの2番目のレイヤーまでドリルダウンするには、ネストされたループを使用します。

for v in view.subviews { 
    v.subviews.forEach({ 
     $0.alpha = 0.8 
     //etc 
    }) 
} 

希望します。

0

を試してみました。

ビューalphaのプロパティを設定すると、すべてのサブビューが影響を受け、透明度がすべて(再帰的に)適用されます。この動作をしたくない場合は、backgroundColorプロパティで透明度を設定し、alphaプロパティ値は1のままにしてください。

イメージビューを非表示にしたくない場合は、このループではなくストーリーボードに手動でalphaを設定するか、イメージビューレットを作成し、ループの後にアルファを1に設定します。

関連する問題