设置圆角/阴影/模糊处理

1574306084949710.png

以下代码是解决设置圆角/阴影离屏渲染的关键

self.contentView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.contentView.bounds].CGPath;
// 设置x向右偏移,y向下偏移
self.contentView.layer.shadowOffset = CGSizeMake(2, 3);
// 设置阴影的颜色
self.contentView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
// 设置阴影的透明图
self.contentView.layer.shadowOpacity = 0.5;
// 设置阴影的圆角
self.contentView.layer.shadowRadius = 5.f;

layer 里与阴影有关的设置与 Sketch 里阴影参数的对应关系是:

  • shadowPath ~> 阴影的范围

  • shadowColor ~> 阴影的颜色

  • shadowOpacity ~> 阴影的透明度

  • shadowOffset ~> X 和 Y

  • shadowRadius ~> 阴影的模糊


D337BFF2-4585-489B-BA47-EE282A9A16FE.png

图像模糊处理

CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage = [[CIImage alloc] initWithImage:image];
// create gaussian blur filter
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:3.0] forKey:@"inputRadius"];
// blur image
CIImage *result = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result fromRect:[result extent]];
UIImage *image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
// 设置背景图,创建一个imageView.image 来接收模糊视图image
self.backgroundIcon.image = image;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容