本文主要是介绍iOS xib设置阴影,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原理和xib中设置边框一样,我大概说一下流程。废话不多说,看图:
相当于代码:
view.layer.shadowOffset = CGSizeMake(0, 5);
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOpacity = 0.05;//阴影透明度,默认0
view.layer.shadowRadius = 5;//阴影半径,默认3
view.layer.masksToBounds = NO;
看见上面图片划线的那个 shadowUIColor 而不是 shadowColor,原因和设置边框的一样 layer.shadowColor 的类型是 CGColorRef 而不是 UIColor,xib中所选择的颜色类型是 UIColor,所以我们还差最后一步,添加一个 CALayer+XibConfiguration
.h内容:
#import <QuartzCore/QuartzCore.h>@interface CALayer (XibConfiguration)// This assigns a CGColor to borderColor.@property(nonatomic, assign) UIColor *borderUIColor;
@property(nonatomic, assign) UIColor *shadowUIColor;@end
.m内容:
#import "CALayer+XibConfiguration.h"@implementation CALayer (XibConfiguration)-(void)setBorderUIColor:(UIColor*)color
{self.borderColor = color.CGColor;
}-(UIColor *)borderUIColor
{return [UIColor colorWithCGColor:self.borderColor];
}-(void)setShadowUIColor:(UIColor*)color
{self.shadowColor = color.CGColor;
}-(UIColor *)shadowUIColor
{return [UIColor colorWithCGColor:self.shadowColor];
}@end
因为 CALayer+XibConfiguration 中定义的是 shadowUIColor 所以xib中才是 shadowUIColor。
我再讲一个小细节,如果你还想设置圆角,那你就先设置阴影后设置圆角,如上面那张图那个顺序,不然圆角设置不成功。(我就是被这个细节坑了,有问题请留言)。
这篇关于iOS xib设置阴影的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!