xyk blog

最近は iOS 開発の記事が多めです。

UIView の背景色をグラデーションにする

環境:iOS 7.1

UIView がコンポジションしている CALayer に以下のように設定すればOK。
CALayer でエラーになる場合はQuartzCore.frameworkを追加する。

Objective-C

- (void)viewDidLoad {
    [super viewDidLoad];

    CAGradientLayer *gLayer = [CAGradientLayer layer];
    gLayer.frame = self.view.bounds;
    gLayer.colors = @[
                      (id)[UIColor whiteColor].CGColor,
                      (id)[UIColor blackColor].CGColor
                      ];
    [self.view.layer insertSublayer:gLayer atIndex:0];
}

追記:

Swift2.1

override func viewDidLoad() {
    super.viewDidLoad()

    let gLayer = CAGradientLayer()
    gLayer.frame = self.view.frame
    gLayer.colors = [UIColor.whiteColor().CGColor, UIColor.blackColor().CGColor]
    self.view.layer.insertSublayer(gLayer, atIndex: 0)
}

f:id:xyk:20140926153350p:plain