iOS开发之锚点anchorPoint
效果图如下:
我们可以看到,不管棕色的方块怎么运动,总是以绿色的店作为中心来移动的,这就和船只的锚点是一样的道理
一、简介:
anchorPoint 锚点 以锚点为中心,执行动画(与渔夫固定船的点一致)
anchorPoint 默认是 0.5 0.5 锚点是一个比例
anchorPoint 锚点在左上角的时候,为(0,0) 右上角(1,0)左下角(0,1) 右下角(1,1)
二、代码
1、定义两个全局变量
<span style="color:#009900;">{CALayer *ship;CALayer *APLayer;
}</span>
2、代码实现两个layer
ship = [[CALayer alloc]init];ship.backgroundColor = [UIColor brownColor].CGColor;ship.bounds = CGRectMake(0, 0, 100, 100);ship.position = self.view.center; // CALayer的 中心点ship.opacity = 0.5; // CALayer的透明度 shadowOpacityNSLog(@"锚点x:%f 锚点y:%f",ship.anchorPoint.x,ship.anchorPoint.y);[self.view.layer addSublayer:ship];
APLayer = [[CALayer alloc]init];APLayer.backgroundColor = [UIColor greenColor].CGColor;APLayer.bounds = CGRectMake(0, 0, 10, 10);CGFloat x = CGRectGetWidth(ship.bounds)*ship.anchorPoint.x;CGFloat y = CGRectGetHeight(ship.bounds)*ship.anchorPoint.y;APLayer.position = CGPointMake(x, y);[ship addSublayer:APLayer];
3、触摸屏幕和触屏结束调用
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{UITouch *touch = [touches anyObject];CGPoint touchPoint = [touch locationInView:self.view];
// APLayer.position = touchPoint;// 得到锚点CGFloat x1 = touchPoint.x/CGRectGetWidth(self.view.frame);CGFloat y1 = touchPoint.y/CGRectGetHeight(self.view.frame);ship.anchorPoint = CGPointMake(x1, y1);NSLog(@"%f %f",x1,y1);// 得到APlayer的位置CGFloat x = CGRectGetWidth(ship.bounds)*ship.anchorPoint.x;CGFloat y = CGRectGetHeight(ship.bounds)*ship.anchorPoint.y;APLayer.position = CGPointMake(x, y);// 角度值经计算转化为弧度值。要把角度值转化为弧度值,可以使用一个简单的公式Mπ/180
// xyz 是三个轴 0 1ship.transform = CATransform3DMakeRotation(45*M_PI/180, 0, 0, 1);}- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{ship.transform = CATransform3DIdentity;
}
iOS开发之锚点anchorPoint相关推荐
- IOS开发之——Position和AnchorPoint(92)
一 概述 CAlayer中position和anchorPoint属性说明 position和anchorPoint示意图 二 position和anchorPoint属性说明 CALayer中有2个 ...
- iOS开发系列--让你的应用“动”起来
概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...
- [分享]iOS开发-UI篇:CAlayer层的属性
iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- iOS开发之让你的应用“动”起来转写
在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画 ...
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...
- IOS开发基础之大转盘案例
IOS开发基础之大转盘案例 本案例使用xib加载的,以及核心动画的使用.动态按钮的使用和创建.等知识. 源码在我的主页资源下.欢迎下载. 核心代码在这. // LJRotateView.h // 37 ...
- IOS开发基础之时钟的实现
IOS开发基础之时钟的实现 源码在我的主页资源下. // // ViewController.m // 29-时钟练习 // // Created by 鲁军 on 2021/2/21. //#imp ...
- ios开发——使用CALayer和Core Animation做动画效果
一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...
- 【IOS开发进阶系列】动画专题
1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hello_Hwc/archive/123447.html 1.1 基本概念 1.1.1 CA ...
最新文章
- new_zeros()函数的作用
- 19-for循环语句
- (八)限定某个目录禁止解析php、限制user_agent和PHP相关配置
- 法国标致雪铁龙汽车公司采用通快碟片激光器进行焊接
- 百度网盘直接解析高速下载文件源码
- 弱小无助!苹果或将出手救援屏幕供应商JDI
- vc ++ 如何做界面开发?
- Android入门项目(校园软件)
- 昂达 android 刷机包,系统 基于安卓4.3全新ROM_昂达平板电脑_平板电脑评测-中关村在线...
- R语言实战——单个总体均值的区间估计
- Newton牛顿法(二)| 收敛性和收敛速度 +初值的选取方法
- B1072 开学寄语(python)
- 大脑是什么样的网络?
- 华为路由器接口如何区分_华为路由器接口介绍
- Watcher源码解析
- Template-Web
- 如何提取抖音短视频中的音乐
- 24小时轮播怎么实现的_优酷24小时轮播台如何使用
- Google Analytics Measurement Protocol添加自定义统计事件
- Scrapy框架+Gerapy分布式爬取海外网文章