現在、GAグラデーションレイヤーで色を設定しましたが、色のポイントを(上中央ではなく左上)と下に設定したいと思います。 (少し下の中央から右下へ)ではなく、少し上に物事を変更するために考えていますか?以下はこれまでに得たコードです...私は色の間のアニメーションなのでコアアニメーションを含めました。
- (id)init {
self = [super init];
UIView *gradientView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.w, self.h)];
[self addSubview:gradientView];
[self sendSubviewToBack:gradientView];
topColor = [UIColor colorWithRed:0.012 green:0.012 blue:0.012 alpha:1];
bottomColor = [UIColor colorWithRed:1.000 green:0.765 blue:0.235 alpha:1];
gradient = [CAGradientLayer layer];
gradient.frame = gradientView.frame;
gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil];
gradient.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:0.7], nil];
[gradientView.layer addSublayer:gradient];
[self performSelector:@selector(animateColors) withObject:self afterDelay:2.0];
currentColorCount = 1;
return self;
}
右側(私が持っているもの)左側(私が望むもの)
startPoint
のendPoint
およびCAGradientLayer
プロパティは、「ユニット座標系」で定義されます。単位座標系で:
(0,0)
は、レイヤーの境界の長方形の最小座標に対応します。iOSでは、レイヤーが変換されていない限り、左上隅になります。(1,1)
は、レイヤーの境界矩形の最大座標に対応します。iOSでは、レイヤーが変換されていない限り、その右下隅になります。したがって、グラデーションを希望どおりに配置するには、次のようにします。
gradient.startPoint = CGPoint.zero
gradient.endPoint = CGPoint(x: 1, y: 1)