- UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(130, 330, 100, 100)];
- [btn setBackgroundColor:[UIColor colorWithRed:(226.0 / 255.0) green:(113.0 / 255.0) blue:(19.0 / 255.0) alpha:1]];
- [backgroundImageView addSubview:btn];
- //绘制曲线路径
- UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:btn.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:btn.bounds.size];
- CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
- //设置大年夜小
- maskLayer.frame = btn.bounds;
- //设置图形样子
- maskLayer.path = maskPath.CGPath;
- btn.layer.mask = maskLayer;
效不雅图:
小我认为第二种筹划更简单并且功能扩大性更强些设置暗影
惯例做法:
- //暗影的色彩
- self.imageView.layer.shadowColor= [UIColorblackColor].CGColor;
- //暗影的透明度
- self.imageView.layer.shadowOpacity=0.8f;
- //暗影的圆角
- self.imageView.layer.shadowRadius=4;
- //暗影偏移量
- self.imageView.layer.shadowOffset=CGSizeMake(0,0);
避免对shadowOffset直接修改,经由过程调用setShadowPath来供给一个CGPath给视图的Layer,向Core Animation供给衬着的View的外形Shape,就会削减离屏衬着计算
- [self.imageView.layer setShadowPath:[[UIBezierPath
- bezierPathWithRect:myView.bounds] CGPath]];
弥补:当应用暗影的视图外形产生变更时,即shadowPath并不会跟随CALayer的bounds属性进行变更,所以在layer的bounds产生变更今后须要手动更新shadowPath才能让其适配新的bounds。
惯例做法:
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?我们逐条来分析,起首第一点,今朝Play市廛仍许可面向老安卓体系的APP提交,来岁8月开端就弗成能了;第二自得味着,谷歌为>>>详细阅读
地址:http://www.17bianji.com/lsqh/40007.html
1/2 1
iOS和常见的离屏渲染Say Goodbye!
作者: 来源: 2017-12-21 09:04:31 阅读次 我要评论
关键词: 探索发现
乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。
网友点评
精彩导读
品牌展示


科技快报