您的位置:首页 > 产品设计 > UI/UE

利用分类(category)扩充UIImage,实现按钮点击改变背景颜色

2016-04-28 22:15 806 查看
原文地址:iOS button 点击状态下改变背景颜色(by韩万杰)

1.为UIImage添加分类

//添加image分类  .m文件代码
#import "UIImage+Extension.h"

@implementation UIImage (Extension)

+ (UIImage *)imageWithColor:(UIColor *)color
{
CGFloat imageW = 3;
CGFloat imageH = 3;
// 1.开启基于位图的图形上下文
UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageW, imageH), NO, 0.0);
// 2.画一个color颜色的矩形框
[color set];
UIRectFill(CGRectMake(0, 0, imageW, imageH));

// 3.拿到图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 4.关闭上下文
UIGraphicsEndImageContext();

return image;
}

@end

//image分类  .h文件代码

#import <UIKit/UIKit.h>

@interface UIImage (Extension)

/**
*  生成的图片的rect默认为100,100
*/
+ (UIImage *)imageWithColor:(UIColor *)color;
@end

//导入头文件   调用  分类方法   可改变image背景颜色

UIButton *loginButton = [[UIButton alloc]initWithFrame:self.view.bounds];
[loginButton setTitle:@"登 录" forState:UIControlStateNormal];
loginButton.backgroundColor = [UIColor whiteColor];
[loginButton setBackgroundImage:[UIImage imageWithColor:[UIColor lightGrayColor]] forState:UIControlStateHighlighted];
[self.view addSubview:loginButton];


扩展阅读:

1.category和extension的区别,查了一下,网上同胞写的很多都不准确,如果你同我一样是新手建议谨慎,个人觉得《Effective Objective-C 2.0》里面说的比较清晰准确。

2.iOS开发系列——打造自己的“美图秀秀” Quartz 2D绘制2D图形和Core Image相关的知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: