2016-05-24 1 views
3

こんにちはマスターズ、CAGradientLayerがサブビューを2日後にイライラiOSとスウィフトの可視

をされていない原因は、私は必死にここに頼むことにしました。問題:

CAGradientLayerを追加すると、サブビューは表示されません。

詳細:

  • 私は単純に任意のビューでメソッドを呼び出すと、この自体が完全に
  • しかし、私ならば動作します のUIView
  • の延長でCAGradientLayerを追加するための方法を行っていますすべてのサブビューが表示されないように、ビュー階層内のUIViewにこのメソッドを使用してみてください。 グラデーションはすべてのサブビューを「オーバーレンダー」しているようです。
  • tを呼び出さないと彼はコンテナビューで "addGradient"メソッドを使用すると、すべてのサブビューが正しく表示されます
  • 素晴らしい詳細:サブビューは表示されませんが、何らかの形で表示され、アクティブです(例: 「目に見えない」UIButton火災」)
  • 私は、自動レイアウト

に任意のアイデアを使用していいただければ幸いです!事前に 感謝を。

+0

私は自分の答えを更新し、コードを使ってみました。それはあなたのために働いたかどうかを見てみましょう –

答えて

8

LukeSideWalker、

わからないが、あなたは常にそれは文句を言わない既存のサブビューをカバーするように、他のすべての層の下にあなたの層を追加しようとすることができます。あなたの拡張機能で、これを試してみてください、あなたが

self.layer.insertSublayer(layer, atIndex: 0) 

を表示するレイヤーを追加する場所サブビューがうまく働いたとしてImageViewのを追加しようとしました:)だけでなく、あなたの問題を解決する必要があります。

+0

Sandeepありがとうございますが、 "上"でも "下"でも私の問題は解決していません。私はメソッドを使用します:self.layer.addSublayer(gradientLayer)、これは "下"とにかく、右ロードする必要がありますか? – LukeSideWalker

+0

@lukesidewalker:Surplrizingly私の最初の答えは、あなたが以下に使用するように頼んで同じことを言った:)しかし、私はコードを自分自身を実行しようとしたときにうまくいく。しかし、インデックスを0として指定すると、トリックが起こりました:) –

+0

「しかし、インデックスを0として指定するのは、トリックでした:)」とはどういう意味ですか? – LukeSideWalker

0

私は以前にも同様の問題が発生した背景を追加することで問題を解決私のビューにビュービュー階層は次のようになりますので:。。

view 
    backgroundView 
    someView 
    someViewInsideView 
    someOtherView 

トップビューアルファは、だから私は明確な背景色でビューを使用してビューのを与えるためにbackgroundViewを使用しすぎてサブビューのアルファに影響を与えているようです背景色、アルファ修飾語付きの他のプロパティ

+0

ありがとうMurat、私はこれを試してみませんが、問題が同じであるように見えるので、現時点では、私は想像することはできませんが、階層... – LukeSideWalker

+0

問題は、ルートビューを変更したときに、すべてのサブビューが同じアルファモディファイアによって影響を受けることがわかったためです。だからあなたのサブビューは正しく表示されません。私が示唆しているのは、backgroundView(この場合はグラデーションレイヤーを追加する)を変更して、ルートビューをそのままにしておかなければならないということです。他のビューはbackgroundViewと修飾子を共有しないので、影響を受けません。 –

+0

もう一度、特に最後の説明に感謝します。ご覧のとおり、Sandeepはすでに私に完璧なソリューションを与えてくれました。 – LukeSideWalker

関連する問題