본문 바로가기
아이폰 개발/ios 개념&튜토리얼

iOS 카테고리 예제 - (UIColor 확장하기)

by 인생여희 2021. 2. 21.

iOS 카테고리 예제 - (UIColor 확장하기)

 

상속 : 상속은 슈퍼 클래스의 변수와 메소드(기능)을 서브클래스가 다 가지면서도, 슈퍼클래스에 없는 기능을 서브클래스가 추가할 수 있다. 즉, 위에서 아래로 확장이라고 할 수 있다.

 

카테고리 : 이미 있는 클래스에 기능을 더 추가한다. 상속보다 사용하기가 편하다. 필요한 기능만 카테고리를 이용해서 만들면 된다.

 

 

UIColor 확장 예제

 

UIColor에 THAdditions 라는 카테고리를 만들 것이다.

 

@interface UIColor (카테고리 이름)

 

UIColor+THAdditions.h

 

//UIColor 의 카테고리 추가

@interface UIColor (THAdditions)

//다크 칼러
- (UIColor *)darkerColor;

//라이트 컬러
- (UIColor *)lighterColor;

@end

 

 

UIColor+THAdditions.m

 

#import "UIColor+THAdditions.h"

@implementation UIColor (THAdditions)


//커스텀 UIColor 리턴
- (UIColor *)lighterColor {
    //색상 , 채도, 밝기, 알파
    CGFloat hue, saturation, brightness, alpha;
    
    if ([self getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha]) {
       
        //색생값,  채도, 밝기, 알파값
        return [UIColor colorWithHue:hue saturation:saturation brightness:MIN(brightness * 1.3, 1.0) alpha:0.5];

    }
    
    return nil;
}

- (UIColor *)darkerColor {
    CGFloat hue, saturation, brightness, alpha;
    if ([self getHue:&hue saturation:&saturation brightness:&brightness alpha:&alpha]) {
        
		return [UIColor colorWithHue:hue saturation:saturation brightness:brightness * 0.92 alpha:alpha];
	}
    return nil;
}

@end

 

 

사용하기

 

클래스...
선언부

@property (strong, nonatomic) UIColor *lightColor;



구현부
....
....
UIColor *strokeColor = [self.lightColor darkerColor];

 

 

objectieve c 카테고리

https://soooprmx.com/archives/2436

 

UIColor 확장

http://a.lotco.de/?p=132