源码核心动画01-CALayer-基本使用(了解)

//  ViewController.m
//  01-CALayer-基本使用(了解)
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 图层形变

    // 缩放
    [UIView animateWithDuration:1 animations:^{

//        _redView.layer.transform = CATransform3DMakeRotation(M_PI, 1, 1, 0);
//        _redView.layer.transform = CATransform3DMakeScale(0.5, 0.5, 1);

        // 快速进行图层缩放,KVC
        // x,y同时缩放0.5
//        [_redView.layer setValue:@0.5 forKeyPath:@"transform.scale"];

        [_redView.layer setValue:@(M_PI) forKeyPath:@"transform.rotation"];

    }];

}

- (void)imageLayer
{
    // cornerRadiu设置控件的主层边框
    _imageView.layer.cornerRadius = 50;

    NSLog(@"%@",_imageView.layer.contents)
    ;
    // 超出主层边框的内容全部裁剪掉
    _imageView.layer.masksToBounds = YES;

    // 设置边框
    _imageView.layer.borderColor = [UIColor whiteColor].CGColor;
    _imageView.layer.borderWidth = 1;

    // 如何判断以后是否需要裁剪图片,就判断下需要显示图层的控件是否是正方形。
}

- (void)viewLayer
{
    // 设置阴影
    // Opacity:不透明度
    _redView.layer.shadowOpacity = 1;
    //    _redView.layer.shadowOffset = CGSizeMake(10, 10);
    // 注意:图层的颜色都是核心绘图框架,通常。CGColor
    _redView.layer.shadowColor = [UIColor yellowColor].CGColor;
    _redView.layer.shadowRadius = 10;

    // 圆角半径
    _redView.layer.cornerRadius = 50;

    // 边框
    _redView.layer.borderWidth = 1;
    _redView.layer.borderColor = [UIColor whiteColor].CGColor;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
时间: 2024-09-28 18:36:35

源码核心动画01-CALayer-基本使用(了解)的相关文章

Zepto源码分析-动画(fx fx_method)模块

源码注释 // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT license. ;(function($, undefined){ var prefix = '', eventPrefix, // prefix浏览器前缀 -webkit等,eventPrefix事件前缀 vendors = { Webkit: 'webkit', Moz: '', O: 'o'

Spring IOC 源码简单分析 01 - BeanFactory

### 准备 ## 目标 了解 Spring IOC 的基础流程 ## 相关资源 Offical Doc:http://docs.spring.io/spring/docs/4.3.9.RELEASE/spring-framework-reference/htmlsingle/ Sample code:<https://github.com/gordonklg/study>,spring module 源码版本:Spring framework 4.3.9 ##测试代码 gordon.stud

iOS网易云音乐首页源码、动画引擎源码等

iOS精选源码 自己维护的框架, 超级多功能 图片选择SDK:支持多选,相册选择,预览,网络图预览 一款可以简单实现长按拖拽重排的 UICellCollectionView Cell框... 动画引擎 FXAnimationEngine MJCIOS/MJCSegmentInterface(分段界面框架) TYCyclePagerView iOS上的一个无限循环轮播图组件 首页广告视图 SGAdvertScrollView SliderView-自定义分段标签滚动视图,集成使用简单 轻巧便捷的t

jQuery源码逐行分析学习01(jQuery的框架结构简化)

最近在学习jQuery源码,在此,特别做一个分享,把所涉及的内容都记录下来,其中有不妥之处还望大家指出,我会及时改正.望各位大神不吝赐教!同时,这也是我的第一篇前端技术博客,对博客编写还不是很熟悉,美化工作可能不够到位,也希望大家多多见谅! 首先这篇文章要给大家分享的是:jQuery的框架结构,把框架结构简单化处理 此处我所学习使用的jQuery版本是2.0.3版本(文件已经上传到我的文件中,大家可以去下载),一个相对比较老的版本,但是其实基本的功能都与新版本类似,该版本开发版代码共8830行.

短视频系统源码核心功能,SDK和UI

每一个短视频系统源码的功能需求,搞清楚每一个需求的实现原理,哪部分是 UI 的,哪部分是核心的,前者写到 Demo 上,而后者则写入 SDK 里面.优秀的短视频SDK,一定要尽可能避免把 UI 的界面和逻辑包含进去,不然短视频SDK的使用者,很难满足产品经理的 UI 和交互设计要求,做出差异化的效果.一.属于短视频SDK 的部分: 1.提供视频的时长:2.提供视频帧总数:3.提供解码后的每一帧视频数据: 4.提供剪辑函数,参数为:起始和结束的时间戳: 5.完成剪辑处理,输出剪辑后的视频文件.二.

prototype.js 源码解读(01)

prototype.js是一个设计的非常优雅且很有实用价值的js基础类库,其源码非常值得研究.研究它的源码不仅能提升个人水平,而且对你打下坚实的js基础也很有帮助.因本人技术水平有限,该解读仅供参考. 定义全局对象Prototype,包括属性版本号,属性版本号的定义有利于版本号的检测 9 var Prototype = { 10 Version: '1.5.0', 11 BrowserFeatures: { 12 XPath: !!document.evaluate 13 }, 14 15 Sc

zepto源码--核心方法7(管理包装集)--学习笔记

后面应该会有几篇连续介绍关于zepto包装集的文章.涉及的函数较多,就分别介绍,今天介绍几个使用关系获取包装集的方法.prev, next, first, last, siblings, eq prev 看代码,只有一行,涉及到一个pluck函数,一直以为前面介绍过了,但是我看了下似乎没有介绍,补充一下: API中只有一句话:获取对象集合中每一个元素的属性值. 看前文介绍的有关$.map函数之后,相对比较容易理解的,这里就是对包装集进行遍历,返回一个新的数组,这个新的数组是由含有所传入的参数这一

mybatis源码分析之01环境搭建

直接使用maven搭建一个mybatis的运行环境 1. pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

n2n源码核心简单分析一

首先在开篇之前介绍下内网打洞原理 场景:一个服务器S1在公网上有一个IP,两个私网机器C1,C2 C1,C2分别由NAT1和NAT2连接到公网,我们需要借助S1将C1,C2建立直接的TCP连接,即由C1向C2打一个洞,让C2可以沿这个洞直接连接到C1主机,也就成了局域网访问的模式. 实现过程如下: S1启动两个网络监听(主连接监听,打洞监听) 由于S1是公网,所以C1,C2和S1保持通信, 当C1需要和C2建立直接的TCP连接时,首先连接S1的打洞监听端口,并发给S1请求协助连接C2的申请,同时