1. ホーム
  2. アイオス

[解決済み】グラデーションのあるUIViewをプログラムで作成する。

2022-03-26 11:35:25

質問

グラデーションカラーの背景(無地から透明)を持つビューを実行時に生成しようとしています。そのような方法はあるのでしょうか?

解決方法を教えてください。

Objective-Cです。

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
CAGradientLayer *gradient = [CAGradientLayer layer];

gradient.frame = view.bounds;
gradient.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor blackColor].CGColor];

[view.layer insertSublayer:gradient atIndex:0];

スウィフト

let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 50))
let gradient = CAGradientLayer()

gradient.frame = view.bounds
gradient.colors = [UIColor.white.cgColor, UIColor.black.cgColor]

view.layer.insertSublayer(gradient, at: 0)

情報 : は、startPoint と endPoint を使って グラデーションの方向を変更する .

この上に他のビューが追加されている場合 UIView (例えば UILabel ) の背景色を設定することを検討するとよいでしょう。 UIView[UIColor clearColor] で、サブビューの背景色ではなく、グラデーションビューが表示されるようにしました。使用方法 clearColor は若干のパフォーマンスヒットがあります。