想制作纯色的UIButton吗?来,哥教你~

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

因为项目要做到美观,加上扁平化设计这么流行,所以各种找资料.

原本想找找UIButton是否有直接的设置方法,却发现没有.找到点击后高亮也只有setBackgroundImage 这条路走了.

首先写一个能改变大小,颜色,返回值为image的类方法.(我在网上找的...)

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

CGRect rect = CGRectMake(0, 0, size.width, size.height);

UIGraphicsBeginImageContext(rect.size);

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);

CGContextFillRect(context, rect);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return image;

}

好吧,以下是我写的,与君分享:

+ (instancetype)buttonWithTitleAndColor:(NSString *)title frame:(CGRect)frame

{

//必须是UIButtonTypeCustom,否则设置高亮不起作用

UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];

[btn.layer setMasksToBounds:YES];

[btn.layer setCornerRadius:4.0]; //设置矩形四个圆角半径

// [btn.layer setBorderWidth:1.0]; //边框宽度

btn.frame = frame;

[btn setTitle:title forState:UIControlStateNormal];

[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

//ButtonBgColor与ButtonTouchBgColor是两个UIColor颜色的宏定义,大家可以随意定义.例如[UIColor blueColor];

UIImage * bgImage1 = [self imageWithColor:ButtonBgColor size:frame.size];

UIImage * bgImage2 = [self imageWithColor:ButtonTouchBgColor size:frame.size];

[btn setBackgroundImage:bgImage1 forState:UIControlStateNormal];

[btn setBackgroundImage:bgImage2 forState:UIControlStateHighlighted];

return btn;

}

大家也可以根据CAlayer的属性和方法,自定义喜欢的UIButton样式.

 

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航