欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iOS xib设置阴影

程序员文章站 2024-03-03 19:12:34
...

原理和xib中设置边框一样,我大概说一下流程。废话不多说,看图:

iOS 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。


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

















相关标签: xib 阴影