ImageView にグラデーションの背景を設定したいと考えています。ここスタックオーバーフローでその解決策を見つけました。しかし、それは私のニーズを本当に満たしていません。
グラデーションを左から右にしたい。私が見つけた私のコードでは、上から下にしか埋めることができません。
次のコードでグラデーション レイヤーを作成します。
+ (CAGradientLayer *)colorGradientWithColor:(UIColor *)color
{
UIColor *colorOne = color;
UIColor *colorTwo = [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:0.0f];
NSArray *colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, colorTwo.CGColor, nil];
NSNumber *stopOne = [NSNumber numberWithFloat:0.0];
NSNumber *stopTwo = [NSNumber numberWithFloat:0.9];
NSArray *locations = [NSArray arrayWithObjects:stopOne, stopTwo, nil];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = colors;
gradientLayer.locations = locations;
return gradientLayer;
}
次に、レイヤーを my に追加しますUIImageView
。
CAGradientLayer *gradientLayer = [BackgroundGradient colorGradientWithColor:difficultyColor];
gradientLayer.frame = myImageView.bounds;
[myImageView.layer insertSublayer:gradientLayer atIndex:0];
結果は次のとおりです。
そしてここで私のインターフェース設定:
ご覧のとおり、 が 2 つありUIImageViews
ます。グラデーション ビューでレイヤーを回転させたいので、現在の状態ではなく、左から右に移動します。
次のコード フラグメントを使用すると、全体を回転させることができImageView
ます。これは私の問題を解決するだけですが、インターフェースを破壊するので、私はそれを望んでいません..
myImageView.transform = CGAffineTransformMakeRotation(M_PI*1.5f);
したがって、基本的には、上から下ではなく左から右へのグラデーションを行うソリューションを探しています。
何かアイデアはありますか?私は XCode を初めて使用するので、あらゆるヒントをいただければ幸いです。