有時做需求的時候,產(chǎn)品會要求這里加個圓角,那里加個陰影,還會同時需要圓角陰影,沒處理過這種情況的時候第一時間還是會有點頭疼的,這里給大家分享一個自己寫的分類,包含有單獨設(shè)置陰影以及同時設(shè)置圓角+陰影的兩個方法
https://github.com/Nedoloroso/categoryForCornerShadow
/**
為控件增加陰影
注:控件clipsToBounds必須為NO
@param shadowColor 陰影顏色
@param shadowOpacity 陰影透明度
@param shadowValue 陰影擴(kuò)散距離
*/
- (void)addShadow:(UIColor *)shadowColor
shadowOpacity:(float)shadowOpacity
shadowValue:(CGFloat)shadowValue
{
self.layer.shadowColor = shadowColor.CGColor;
self.layer.shadowOpacity = shadowOpacity;
self.layer.shadowRadius = shadowValue;
self.layer.shouldRasterize = YES;
self.layer.shadowOffset = CGSizeMake(0, 0);
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
}
/**
為控件增加陰影(帶圓角)
注:控件clipsToBounds必須為NO
@param shadowColor 陰影顏色
@param shadowOpacity 陰影透明度
@param shadowValue 陰影擴(kuò)散距離
*/
- (void)addShadow:(UIColor *)shadowColor
shadowOpacity:(float)shadowOpacity
shadowValue:(CGFloat)shadowValue
cornerRadius:(CGFloat)cornerRadius
{
self.layer.cornerRadius = cornerRadius;
[self addShadow:shadowColor shadowOpacity:shadowOpacity shadowValue:shadowValue];
}
- 需要注意的是控件本身的clipsToBounds必須為NO,否則不生效
- 對于陰影透明度和擴(kuò)散距離可以通過ziplin或者藍(lán)湖獲取,如果沒有那就問下UI同學(xué)吧