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。


我再讲一个小细节,如果你还想设置圆角,那你就先设置阴影后设置圆角,如上面那张图那个顺序,不然圆角设置不成功。(我就是被这个细节坑了,有问题请留言)。

















©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页