UIButton 没法给不同的state状态设置圆角
aslanTT opened this issue · 2 comments
RT
使用"UIView+RoundedCorner.h"无法直接给UIButton设置圆角
库里只给normal state设置了圆角
highled和disable状态没有设置
只能先生成一个圆角图片,再设置给button
@aslanTT 从代码上来说实现这个肯定是很简单的,但又得单独给 UIButton 增加接口,纠结,所以可以选择使用 "UIImage+RoundedCorner.h" 生成圆角图片。
其实也可以集成 SDWebImage ,但总觉得这应该是一个简单的库,再集成其它的库就比较重了。
嗯,我自己又写了个UIButton的category
- (void)setBackgroundColor:(UIColor *)color cornerRadius:(CGFloat)radius forState:(UIControlState)state { [self setBackgroundColor:color cornerRadius:radius borderColor:nil borderWidth:0 forState:state]; }
- (void)setBackgroundColor:(UIColor *)color cornerRadius:(CGFloat)radius borderColor:(UIColor *)borderColor borderWidth:(CGFloat)borderWidth forState:(UIControlState)state { UIImage *image = [UIImage imageWithColor:color]; image = [UIImage jm_imageWithRoundedCornersAndSize:self.size CornerRadius:radius borderColor:borderColor borderWidth:borderWidth backgroundColor:nil backgroundImage:image withContentMode:UIViewContentModeScaleToFill]; [self setBackgroundImage:image forState:state]; }