私はUIViewを持っており、その底部を0の不透明度にフェードアウトしたいと考えています。UIViewのグラデーションマスク
これは、UIViewとそのコンテンツ全体に影響を与えるためにUIView(CALayer)に行うことができますか?
私はUIViewを持っており、その底部を0の不透明度にフェードアウトしたいと考えています。UIViewのグラデーションマスク
これは、UIViewとそのコンテンツ全体に影響を与えるためにUIView(CALayer)に行うことができますか?
はい、あなたが行うことができ、あなたのビューのレイヤーマスクとしてCAGradientLayer
を設定することにより:
#import <QuartzCore/QuartzCore.h>
...
CAGradientLayer *maskLayer = [CAGradientLayer layer];
maskLayer.frame = view.bounds;
maskLayer.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor];
maskLayer.startPoint = CGPointMake(0.5, 0);
maskLayer.endPoint = CGPointMake(0.5, 1.0);
view.layer.mask = maskLayer;
P.S.また、機能させるには、QuartzCore.framework
をアプリにリンクする必要があります。
これは年を取っていることは分かっていますが、cgcolorを取得してポインタに戻すのはどうですか? 'colors'プロパティは、それがUIColorsの配列であることを示します。 –
abstract from docs - ** colors ** - 各グラデーションストップの色を定義するCGColorRefオブジェクトの配列。それらをNSArrayに格納するために、それらをidにキャストします。率直に言って、私はARCを使用するときにブリッジキャストが必要だと思っていましたが、今のコードはコンパイルされているので、 – Vladimir
ありがとうございました! – Deeper
グラディエントマスクで苦労している他の人にとっては、 'UIStackView'に適用しても機能しません。 –