iOS 图片要圆角 阴影投影 描边
处理的方法是 阴影投影 用 CALayer 做底,
然后设置一下 层级关系即可。
UIImageView *avatarImgView = [[UIImageView alloc] init];
avatarImgView.frame = CGRectMake(20, 500, 80, 80);
avatarImgView.layer.cornerRadius = 10.f;
avatarImgView.layer.borderColor = [UIColor whiteColor].CGColor;
avatarImgView.layer.borderWidth = 2.f;
avatarImgView.layer.masksToBounds = YES;
[avatarImgView yy_setImageWithURL:[NSURL URLWithString:@"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1544000014855&di=01ff2f37062669c071f33ffdacb4c373&imgtype=0&src=http%3A%2F%2Fa.hiphotos.baidu.com%2Fzhidao%2Fpic%2Fitem%2F8c1001e93901213f10bfab2a51e736d12e2e95bc.jpg"] options:0];
[self.view addSubview:avatarImgView];
CALayer *subLayer = [CALayer layer];
CGRect subFrame = CGRectMake(CGRectGetMinX(avatarImgView.frame) + 3, CGRectGetMinY(avatarImgView.frame) + 3, CGRectGetWidth(avatarImgView.frame) - 6, CGRectGetHeight(avatarImgView.frame) - 6);
subLayer.frame = subFrame;
subLayer.cornerRadius = 8.f;
subLayer.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5].CGColor;
subLayer.masksToBounds = NO;
subLayer.shadowColor = [UIColor blackColor].CGColor;
subLayer.shadowOffset = CGSizeMake(0, 6.f);
subLayer.shadowOpacity = 0.8;
subLayer.shadowRadius = 10.f;
[self.view.layer insertSublayer:subLayer atIndex:-1];
avatarImgView.layer.zPosition = 10;
subLayer.zPosition = 9;