[XCODE] UIViewの背景をグラデーションにする方法
こんにちは、@yoheiMuneです。
今日はiPhoneで、UIViewの背景にグラデーション色を表示する実装方法をブログに書きたいと思います。

こんな感じで簡単に出来ます。
これが一番簡単な方法で、デザイナーさんがいるとか、自分がデザインツールを使いこなせるなどの環境であれば、 これから紹介するプログラムでグラデーションを作る必要はないかもしれません。
ただViewのサイズが可変になるとか、いろいろと色味を調整してみたいとか、デザインをプログラムで解決したいなどの希望があれば、 以下で紹介するグラデーションの実装方法が参考になるかもしれません。
グラデーションを表現するには、以下のように実装します。
コード量が多いですが、こんな感じでグラデーション画像を生成してそれをViewの背景に設定できます。
そんなときに、上記のようなコードでデザインを解決すると良いかもしれません☆
最後までご覧頂きましてありがとうございます。
今日はiPhoneで、UIViewの背景にグラデーション色を表示する実装方法をブログに書きたいと思います。

UIViewの背景をグラデーションで表現する一番簡単にする
UIViewの背景をグラデーションにする一番手っ取り早い方法は、グラデーション画像を背景に置く方法です。こんな感じで簡単に出来ます。
#import <QuartzCore/QuartzCore.h>
-(void)makeGradientBackground:(UIView *)view {
view.layer.contens = (id)[UIImage imageNamed:@"gradientBg"];
}
米 QuartzCoreライブラリをプロジェクトに追加しておく必要あります。これが一番簡単な方法で、デザイナーさんがいるとか、自分がデザインツールを使いこなせるなどの環境であれば、 これから紹介するプログラムでグラデーションを作る必要はないかもしれません。
ただViewのサイズが可変になるとか、いろいろと色味を調整してみたいとか、デザインをプログラムで解決したいなどの希望があれば、 以下で紹介するグラデーションの実装方法が参考になるかもしれません。
UIViewの背景をグラデーションをプログラムで作成する方法
UIViewの背景を自由に制作するためには、CGContextなどを利用して描画内容を作成します。グラデーションを表現するには、以下のように実装します。
// 処理対象のView
UIView *amountBGView = [UIView createBGView];
// グラデーションの内容を作ります。
float width = amountBGView.frame.size.width, height = amountBGView.frame.size.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef bitmapContext = CGBitmapContextCreate(NULL, width, height, 8, 4 * width, colorSpace, kCGImageAlphaNoneSkipFirst);
size_t numOfComponent = 2;
CGFloat locations[2] = {0.0, 1.0};
CGFloat components[8] = {
99.0f/255.0f, 217.0f/255.0f, 76.0f/255.0f, 1.0f,
157.0f/255.0f, 217.0f/255.0f, 76.0f/255.0f, 1.0f
};
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, locations, numOfComponent);
// 制作したグラデーション内容で画像を生成する
CGContextDrawLinearGradient(bitmapContext, gradient, CGPointMake(0, 0), CGPointMake(0, height), 0);
CGImageRef imageRef = CGBitmapContextCreateImage(bitmapContext);
UIImage *image = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
CGContextRelease(bitmapContext);
CGColorSpaceRelease(colorSpace);
// 生成したグラデーション画像を背景に指定する。
[self.amountBGView setBackgroundColor:[UIColor colorWithPatternImage:image]];
コード量が多いですが、こんな感じでグラデーション画像を生成してそれをViewの背景に設定できます。
最後に
iPhoneアプリを作っているとInterface Builderでかなりのデザインが出来るので、 わざわざデザインツールでカンプを作るのも面倒な気がしてきます。そんなときに、上記のようなコードでデザインを解決すると良いかもしれません☆
最後までご覧頂きましてありがとうございます。






