解决button被点击改变背景颜色的方法

创建UIButton的分类

.h文件:

- (void)setBackgroundColor:(UIColor*)backgroundColor forState:(UIControlState)state;

+ (UIImage*)imageWithColor:(UIColor*)color;

.m文件:

- (void)setBackgroundColor:(UIColor*)backgroundColor forState:(UIControlState)state {

[selfsetBackgroundImage:[UIButtonimageWithColor:backgroundColor]forState:state];

}

+ (UIImage*)imageWithColor:(UIColor*)color {

CGRectrect =CGRectMake(0.0f,0.0f,1.0f,1.0f);

UIGraphicsBeginImageContext(rect.size);

CGContextRefcontext =UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [colorCGColor]);

CGContextFillRect(context, rect);

UIImage*image =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

returnimage;

}

宏定义:

#define GetColorFromHex(hexColor) \

[UIColor colorWithRed:((hexColor >>16) &0xFF) /255.0\

green:((hexColor >>8) &0xFF) /255.0\

blue:((hexColor >>0) &0xFF) /255.0\

alpha:((hexColor >>24) &0xFF) /255.0]

用法:

[(UIButton *)sender setBackgroundColor:GetColorFromHex(0xD3D3D3) forState:UIControlStateNormal];

[(UIButton *)sender setBackgroundColor:GetColorFromHex(0xF76063) forState:UIControlStateHighlighted];

改变GetColorFromHex(),括号中的值,创建你想要的颜色,如果不知道,可以先滴出red,green,blue的数值,在storyboard的颜色设置里填上,会自动显示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容