Skip to content

Instantly share code, notes, and snippets.

@zhangwc
Created August 29, 2013 14:48
Show Gist options
  • Save zhangwc/6379068 to your computer and use it in GitHub Desktop.
Save zhangwc/6379068 to your computer and use it in GitHub Desktop.
#import <UIKit/UIKit.h>
@interface UIColor(ColorComponents)
- (CGColorSpaceModel) colorSpaceModel;
- (CGFloat) red;
- (CGFloat) green;
- (CGFloat) blue;
- (CGFloat) alpha;
@end
@implementation UIColor (ColorComponents)
- (CGColorSpaceModel) colorSpaceModel {
return CGColorSpaceGetModel(CGColorGetColorSpace(self.CGColor));
}
- (CGFloat) red {
const CGFloat *c = CGColorGetComponents(self.CGColor);
return c[0];
}
- (CGFloat) green {
const CGFloat *c = CGColorGetComponents(self.CGColor);
if ([self colorSpaceModel] == kCGColorSpaceModelMonochrome)
return c[0];
return c[1];
}
- (CGFloat) blue {
const CGFloat *c = CGColorGetComponents(self.CGColor);
if ([self colorSpaceModel] == kCGColorSpaceModelMonochrome)
return c[0];
return c[2];
}
- (CGFloat) alpha {
const CGFloat *c = CGColorGetComponents(self.CGColor);
return c[CGColorGetNumberOfComponents(self.CGColor) - 1];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment