效果图如下:

我们可以看到,不管棕色的方块怎么运动,总是以绿色的店作为中心来移动的,这就和船只的锚点是一样的道理

一、简介:

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相关推荐

  1. IOS开发之——Position和AnchorPoint(92)

    一 概述 CAlayer中position和anchorPoint属性说明 position和anchorPoint示意图 二 position和anchorPoint属性说明 CALayer中有2个 ...

  2. iOS开发系列--让你的应用“动”起来

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

  3. [分享]iOS开发-UI篇:CAlayer层的属性

    iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  4. iOS开发之让你的应用“动”起来转写

    在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画 ...

  5. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  6. IOS开发基础之大转盘案例

    IOS开发基础之大转盘案例 本案例使用xib加载的,以及核心动画的使用.动态按钮的使用和创建.等知识. 源码在我的主页资源下.欢迎下载. 核心代码在这. // LJRotateView.h // 37 ...

  7. IOS开发基础之时钟的实现

    IOS开发基础之时钟的实现 源码在我的主页资源下. // // ViewController.m // 29-时钟练习 // // Created by 鲁军 on 2021/2/21. //#imp ...

  8. ios开发——使用CALayer和Core Animation做动画效果

    一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...

  9. 【IOS开发进阶系列】动画专题

    1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hello_Hwc/archive/123447.html 1.1 基本概念 1.1.1 CA ...

最新文章

  1. new_zeros()函数的作用
  2. 19-for循环语句
  3. (八)限定某个目录禁止解析php、限制user_agent和PHP相关配置
  4. 法国标致雪铁龙汽车公司采用通快碟片激光器进行焊接
  5. 百度网盘直接解析高速下载文件源码
  6. 弱小无助!苹果或将出手救援屏幕供应商JDI
  7. vc ++ 如何做界面开发?
  8. Android入门项目(校园软件)
  9. 昂达 android 刷机包,系统 基于安卓4.3全新ROM_昂达平板电脑_平板电脑评测-中关村在线...
  10. R语言实战——单个总体均值的区间估计
  11. Newton牛顿法(二)| 收敛性和收敛速度 +初值的选取方法
  12. B1072 开学寄语(python)
  13. 大脑是什么样的网络?
  14. 华为路由器接口如何区分_华为路由器接口介绍
  15. Watcher源码解析
  16. Template-Web
  17. 如何提取抖音短视频中的音乐
  18. 24小时轮播怎么实现的_优酷24小时轮播台如何使用
  19. Google Analytics Measurement Protocol添加自定义统计事件
  20. Scrapy框架+Gerapy分布式爬取海外网文章

热门文章

  1. Wifidog网关协议V1
  2. 以太坊外部账户EOA与合约账户CA的区别
  3. iOS学习—UIColor使用16进制颜色
  4. django外键获取数据
  5. 基于安卓APP的问卷调查系统的设计与实现
  6. 极简的docker教程-在docker上运行微服务
  7. $.getJSON( )的使用方法简介
  8. ajax打开后回调事件,[AJAX系列]onreadystatechange事件
  9. 爬虫(12,13)selenium练习 12306案例
  10. Linux资源限制命令—ulimit