목표 C UIC 색상 상수 정의
제 테마에 맞는 사용자 정의 색상이 몇 가지 있는 아이폰 애플리케이션이 있습니다.이러한 색상은 제 UI에 맞게 고정되므로 포함할 클래스의 색상을 정의하고자 합니다(Constants.h 및 Constants.m).어떻게 해야 합니까? (UIC 색상은 가변적이며 오류를 발생시킬 수 있기 때문에 단순하게 정의하는 것은 작동하지 않습니다 - 이니셜라이저는 일정하지 않습니다.)
/* Constants.h */
extern UIColor *test;
/* Constants.m */
UIColor *test = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
감사합니다!
UI 색상은 변경할 수 없습니다.저는 주로 컬러, 폰트, 이미지로 작업을 합니다.싱글턴을 사용하거나 정적 이니셜라이저를 사용하도록 쉽게 수정할 수 있습니다.
@interface UIColor (MyProject)
+(UIColor *) colorForSomePurpose;
@end
@implementation UIColor (MyProject)
+(UIColor *) colorForSomePurpose { return [UIColor colorWithRed:0.6 green:0.8 blue:1.0 alpha:1.0]; }
@end
단순화를 위해 이렇게 했습니다.
/* Constants.h */
#define myColor [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0]
통상적인 표현으로 사용할 수 있도록 ';'를 빼놓는 것을 잊지 마세요.
이 접근 방식에 기술적으로 문제가 있는 것은 아닌지 확신할 수 없지만, 잘 작동하며 컴파일 시간 상수 이니셜라이저 오류를 방지합니다. 이 코드는 'myColor'를 입력하는 모든 곳에 효과적으로 고정되므로 실제로 사용하기 전에는 컴파일되지 않습니다.
다른 옵션
당신의 .h에서 당신은 할 수 있습니다.
extern UIColor * const COLOR_LIGHT_BLUE;
당신의 .mm에서 당신은 할 수 있습니다.
UIColor* const COLOR_LIGHT_BLUE = [[UIColor alloc] initWithRed:21.0f/255 green:180.0f/255 blue:1 alpha:1];//;#15B4FF
확장 기능이 없는 빠르고 더러운 것을 찾고 있다면 clang과 함께 사용하십시오.
#define kGreenColor colorWithRed:(0/255.0) green:(213/255.0) blue:(90/255.0) alpha:1.0
- (void)doSomething
{
_label.textColor = [UIColor kGreenColor];
}
종종 사람들은 전역 상수를 단일 톤 객체에 넣거나, 미리 언급한 대로 일부 클래스의 클래스 메서드를 통해 액세스할 수 있습니다.
다른 방법은 다음과 같습니다.
머리글:
#if !defined(COLORS_EXTERN)
#define COLORS_EXTERN extern
#endif
COLORS_EXTERN UIColor *aGlobalColor;
구현:
#define COLORS_EXTERN
#import "GlobalColors.h"
@interface GlobalColors : NSObject
@end
@implementation GlobalColors
+ (void)load
{
aGlobalColor = [UIColor colorWithRed:0.2 green:0.3 blue:0.4 alpha:1];
}
@end
이것은 약간의 해킹이지만 구현에서 색상을 다시 정의할 필요는 없으며 메소드 호출 없이 색상에 액세스할 수 있습니다.
AppController를 사용하여 색상을 정적 변수가 아닌 전역적으로 액세스할 수 있도록 합니다.이렇게 하면 아키텍처의 관점에서 합리적이며, 실행 중에도 가상으로 색상 체계를 변경하고자 한다면 AppController에서 한 두 가지 방법에 불과할 것입니다.
언급URL : https://stackoverflow.com/questions/2824187/objective-c-defining-uicolor-constants
'programing' 카테고리의 다른 글
파일의 MySQL 로드 데이터 - 가속? (0) | 2023.11.01 |
---|---|
삭제된 경우 다른 테이블에 행을 삽입하는 트리거 (0) | 2023.11.01 |
WP REST API V2를 통해 사용자 정의 필드로 Custom Post Type을 올바르게 작성하는 방법 (0) | 2023.11.01 |
wp_nav_메뉴에서 li 요소에 클래스 추가 (0) | 2023.11.01 |
장고 ORM, 요일별 그룹 (0) | 2023.11.01 |