UIViewの背景としてグラデーションを使用したいと思います。私はこれが通常画像とbackgroundColor
プロパティで行われることを知っています。ただし、これをコードで行う方法を学びたいと思います。https://stackoverflow.com/a/1931498/99683を使用して、プログラムで作成しUIView
、グラデーションレイヤーを付けることができます。これはうまくいきます。
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20, 340, 280, 100)];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor redColor] CGColor], (id)[[UIColor yellowColor] CGColor], nil];
[view.layer insertSublayer:gradient atIndex:0];
[self.view addSubview:view];
ただし、ビューをInterface Builder(背景をクリアに設定)に配置して同じことを試してみると、グラデーションが表示されません。
CAGradientLayer *gradient2 = [CAGradientLayer layer];
gradient2.frame = self.containerView.bounds;
gradient2.colors = [NSArray arrayWithObjects:(id)[[UIColor blueColor] CGColor], (id)[[UIColor greenColor] CGColor], nil];
[self.containerView.layer insertSublayer:gradient2 atIndex:0];
これを機能させるために、IBまたはコードで他に何かする必要がありますか?