반응형
UIView에 gradient 넣는 방법
일반적으로 두 가지 색상으로 가로 또는 세로 그라데이션을 넣는 방법이다.
가로 그라데이션과 세로 그라데이션 적용 방법
Utils.m
+(void)setVerticalGradient:(id)viewId topColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor {
[self setGradient:viewId isVertical:YES firstColor:topColor secondColor:bottomColor];
}
+(void)setHorizontalGradient:(id)viewId leftColor:(UIColor*)leftColor rightColor:(UIColor*)rightColor {
[self setGradient:viewId isVertical:NO firstColor:leftColor secondColor:rightColor];
}
/// 그라데이션 넣기
/// @param viewId 뷰
/// @param isVertical YES : 세로 그라데이션, NO : 가로 그라데이션
/// @param firstColor 위 또는 왼쪽 색상
/// @param secondColor 아래 또는 오른쪽 색상
+(void)setGradient:(id)viewId isVertical:(BOOL)isVertical firstColor:(UIColor*)firstColor secondColor:(UIColor*)secondColor {
UIView *view = (UIView*)viewId;
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = view.layer.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:
(id)firstColor.CGColor,
(id)secondColor.CGColor,
nil];
if (isVertical) {
gradientLayer.startPoint = CGPointMake(0.0, 0.0);
gradientLayer.endPoint = CGPointMake(0.0, 1.0);
} else {
gradientLayer.startPoint = CGPointMake(0.0, 0.0);
gradientLayer.endPoint = CGPointMake(1.0, 0.0);
}
[view.layer insertSublayer:gradientLayer atIndex:0];
}
적용 방법
// 가로 그라데이션
[Utils setHorizontalGradient:_btn1 leftColor:[UIColor redColor] rightColor:[UIColor blueColor]];
// 세로 그라데이션
[Utils setVerticalGradient:_btn2 topColor:[UIColor redColor] bottomColor:[UIColor blueColor]];
결과
반응형
'iOS > Swift + Objective-c' 카테고리의 다른 글
[Swift / Objective-c] 자동 잠금 활성화/비활성화 (절전모드) (0) | 2021.08.09 |
---|---|
[objective-c] Hex Color를 UIColor로 변환하기 (Hex to UIColor) (0) | 2021.08.02 |
[Swift] dispatch async 사용법 (asyncAfter) (0) | 2021.05.07 |
[Swift / Objective-c] 문자열 비교 (isEqualToString:) (0) | 2021.05.04 |
[Swift] #pragma mark 사용 방법 (MARK) (0) | 2021.04.26 |