转自:http://www.cocoachina.com/bbs/read.php?tid-3158.html
写在最前边: Category得用法很方便, 举例来说: 新建一个Class文件, 文件名随意需要建立UIImage得Category就按照如下格式添加函数,括号内名称随意, 这种格式, 编译器即认为是一个Category
@interface UIImage (xxx)
@end
@implementation UIImage (xxx)
@end
完整代码如下, 用法见附件Sample Code:
01 | @interface UIImage (Category) |
05 | - (UIImage*)transformWidth:(CGFloat)width |
06 | height:(CGFloat)height; |
09 | @implementation UIImage (Category) |
11 | - (UIImage*)transformWidth:(CGFloat)width |
12 | height:(CGFloat)height { |
14 | CGFloat destW = width; |
15 | CGFloat destH = height; |
16 | CGFloat sourceW = width; |
17 | CGFloat sourceH = height; |
19 | CGImageRef imageRef = self .CGImage; |
20 | CGContextRef bitmap = CGBitmapContextCreate( NULL , |
23 | CGImageGetBitsPerComponent(imageRef), |
25 | CGImageGetColorSpace(imageRef), |
26 | (kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst)); |
28 | CGContextDrawImage(bitmap, CGRectMake(0, 0, sourceW, sourceH), imageRef); |
30 | CGImageRef ref = CGBitmapContextCreateImage(bitmap); |
31 | UIImage *result = [UIImage imageWithCGImage:ref]; |
32 | CGContextRelease(bitmap); |