iOS xib设置阴影
程序员文章站
2024-03-03 19:12:34
...
原理和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。
我再讲一个小细节,如果你还想设置圆角,那你就先设置阴影后设置圆角,如上面那张图那个顺序,不然圆角设置不成功。(我就是被这个细节坑了,有问题请留言)。
上一篇: Golang: 外部排序项目
下一篇: VScode设置vim自定义按键映射