标签:blog color for div on log ad ef as
因为项目要做到美观,加上扁平化设计这么流行,所以各种找资料.
原本想找找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样式.
?
标签:blog color for div on log ad ef as
原文地址:http://www.cnblogs.com/xclidongbo/p/4096238.html