UILabel 控件初始化之后对象自带阴影属性:
@property(nullable, nonatomic,strong) UIColor *shadowColor; // default is nil (no shadow)
@property(nonatomic) CGSize shadowOffset; // default is CGSizeMake(0, -1) -- a top shadow
所以直接上代码:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 20, 175, 80)];
label.shadowColor = [UIColor blueColor];
label.shadowOffset = CGSizeMake(2, 1);
[self.view addSubview:label];
但是我们初始化 UIView 对象发现并不像 UILabel 自带阴影属性,其实不是的。
- (void) setShadowWithColor:(CGColorRef)color offset:(CGSize)offset opacity:(CGFloat)opacity radius:(CGFloat)radius {
[self layer].masksToBounds = NO;
// 阴影颜色
self.layer.shadowColor = color;
// 阴影偏移量
self.layer.shadowOffset = offset;
// 阴影不透明度
self.layer.shadowOpacity = opacity;
// 阴影半径
self.layer.shadowRadius = radius;
}
系统为我们初始化一个设置阴影的方法。
直接上代码:
UIView *view = [[UIView alloc] initWithFrame:self.view.frame];
[view setShadowWithColor:[UIColor black8Color].CGColor offset:CGSizeMake(0, 0.5) opacity:1.f radius:0.5f];
[self.view addSubview:view];
阴影效果比较适用于比如控件上面&左面没有边框,下面&右面有边框等类似情况,具体情况具体使用。