Objective-C实现视图透明度的渐变
来源:互联网 发布:linux 多进程 信号 编辑:程序博客网 时间:2024/04/28 10:38
如题需求,试过增加渐变layer层,和添加阴影效果,但都是把原来的视图遮住了,效果都不理想。看文档中发现CALayer中有这样一个属性:
@property(nullable, strong) CALayer *mask;
把它设置为透明度渐变的效果即可实现视图的透明度的渐变需求,而且以此方法设置透明度并不会影响子视图的透明度。下面以一个图片的透明度渐变写了一个demo:
首先添加图片:
- (void)viewDidLoad { [super viewDidLoad]; //为了方便查看透明度效果,给背景一个颜色 self.view.backgroundColor = [UIColor redColor]; _myImgView = [[UIImageView alloc]init]; _myImgView.frame = CGRectMake(100, 100, 200, 200); _myImgView.image = [UIImage imageNamed:@"timg.jpg"]; [self.view addSubview:_myImgView]; [self changeAlpha];}
changeAlpha的实现:
-(void)changeAlpha{ CAGradientLayer *_gradLayer = [CAGradientLayer layer]; NSArray *colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithWhite:0 alpha:0] CGColor], (id)[[UIColor colorWithWhite:0 alpha:0.5] CGColor], (id)[[UIColor colorWithWhite:0 alpha:1] CGColor], nil]; [_gradLayer setColors:colors]; //渐变起止点,point表示向量 [_gradLayer setStartPoint:CGPointMake(1.0f, 0.0f)]; [_gradLayer setEndPoint:CGPointMake(0.0f, 0.0f)]; [_gradLayer setFrame:_myImgView.bounds]; [_myImgView.layer setMask:_gradLayer];}
效果:
GitHub:https://github.com/FEverStar/AlphaChangeDemo#alphachangedemo
2 0
- Objective-C实现视图透明度的渐变
- Android的TitleBar实现透明度渐变效果
- code实现透明度渐变和颜色渐变的view
- code实现透明度渐变和颜色渐变的view
- code实现透明度渐变和颜色渐变的view
- code实现透明度渐变和颜色渐变的view
- iOS实现透明度渐变和颜色渐变的view
- 实现透明度渐变和颜色渐变
- 设置动画的透明度,透明度的渐变
- Flash实现透明度渐变遮罩的方法
- android 数字选择器中文字颜色透明度渐变的实现
- JQuery Animate函数实现透明度和位置渐变的实例
- 随着RecycleView的滑动实现标题栏透明度渐变:
- 透明度渐变
- 透明度渐变
- 透明度渐变
- 利用滤镜实现鼠标划过,透明度渐变
- 用js实现透明度渐变效果
- 使用JSONRPC 2.0规范解决多语言RPC交互的方案
- poj 3167
- numpy中argsort函数的用法
- 第一行代码阅读笔记---详解分析第一个Android程序
- myeclipse ctrl+左键,没法进入方法
- Objective-C实现视图透明度的渐变
- 过滤器和拦截器
- 修改Linux窗口大小
- WikiOI 1139 观光公交 (NOIP2011) 贪心
- 设计模式之Iterator(迭代器)的设计和使用
- servlet图片上传
- Linux运维+系统服务搭建(七)文件查找
- iOS 支付宝成功后不会回调
- 解决SVN“请求名称有效,但找不到请求类型的数据”问题