Calayer简单应用——下载进度条
来源:互联网 发布:淘宝极速退款卖家拒收 编辑:程序博客网 时间:2024/05/17 23:19
封装一个UIView内含有一个CAlayer属性(隐式动画,无法修改duration等参数)
在iOS中CALayer的设计主要是了为了内容展示和动画操作,CALayer本身并不包含在UIKit中,它不能响应事件。由于CALayer在设计之初就考虑它的动画操作功能,CALayer很多属性在修改时都能形成动画效果,这种属性称为“隐式动画属性”。但是对于UIView的根图层而言属性的修改并不形成动画效果,因为很多情况下根图层更多的充当容器的做用,如果它的属性变动形成动画效果会直接影响子图层。另外,UIView的根图层创建工作完全由iOS负责完成,无法重新创建,但是可以往根图层中添加子图层或移除子图层。
注:要想做隐性动画就在该类中直接创建一个CALayer属性加到self.view.layer的子layer上,通过修改这个子layer的值达到隐性动画的效果.
#import <UIKit/UIKit.h>
@interface ProgressView : UIView
@property (nonatomic,assign)float progress;
@end
****************************************************************************************************************************************************************
#import "ProgressView.h"
@interface ProgressView()
@property (nonatomic,strong)CALayer *progressLayer;
@end
@implementation ProgressView
- (instancetype)initWithFrame:(CGRect)frame{
if (self = [superinitWithFrame:frame]) {
self.progressLayer = [CALayerlayer];
self.progressLayer.frame =CGRectMake(0,0,0, frame.size.height);
self.progressLayer.backgroundColor = [UIColorcyanColor].CGColor;
[self.layeraddSublayer:self.progressLayer];
}
returnself;
}
重写get方法,外部调用时通过修改这个属性就能达到进度条值改变的效果
- (void)setProgress:(float)progress{
_progress = progress;
if (progress <=0) {
progress = 0;
}elseif (progress >=1){
progress = 1.0f;
}
self.progressLayer.frame =CGRectMake(0,0,self.frame.size.width *progress,3);
}
@end
- Calayer简单应用——下载进度条
- CALayer下载进度条
- CALayer简单应用——渐变
- CALayer简单应用 —— 阴影
- CALayer 定制下载进度条控件
- CALayer简单应用——隐式动画
- CALayer简单应用——带阴影的icon
- CALayer的简单应用
- winsock简单应用——网页下载
- Android—ProgressBar进度条应用
- iOS项目开发实战——使用CALayer和定时器实现进度条
- DEV progressbar进度条简单应用
- CoreAnimation —— CALayer
- iosUI—CALayer
- 炫酷进度条:Android 仿应用宝下载进度条
- Android 仿应用宝下载进度条
- Android 仿应用宝下载进度条
- 利用NSURLSessionDownLoadDelegate做简单的下载进度条
- C++中对象生存周期
- 图书馆行业的新发现之——民营图书馆青番茄
- 简单的网络数据用文件来缓存
- 用管道实现线程驱动和通信
- java 同步锁(synchronized)
- Calayer简单应用——下载进度条
- 对apk进行加密
- project euler 92
- Android如何使用WebService接口
- 【Hessian】hessian学习
- 菜鸟注意事项
- ros_hydro_Opencv_with_Kinect_camshiftdemo.cpp
- project euler 93
- UILabel行高设置