关于动画锚点的设置
来源:互联网 发布:河图二手专辑淘宝店 编辑:程序博客网 时间:2024/06/05 14:50
在ios开发中,因为产品的需求,常常会用到动画,但是对于一个刚刚接触动画的菜鸟来说,想要制作出理想的动画效果肯定不是一件容易的事,今天我就拿出令很多人都比较头疼的问题来说一下,锚点的设置。
这边先来科普一下,什么是锚点,在一个view.layer中会存在一个AnchorPoint,这个就是锚点,同样的在view.layer中还存在一个点那就是Position,举个例子来类比一下。比如说现在在墙上挂着一幅画。而固定画的这个钉子就可以视为一个点,相对于这幅画来说,这个点就是锚点,相对于整个墙面来说,这个点就是position。如果还不能理解就看下图:
这样一来是不是清楚多了。下面详细来说一下锚点:
(图是盗来的,不要在意这些细节)
默认的,系统给一个view设置的初始锚点为(0.5,0.5),这是什么意思呢?(0.5,0.5)是指锚点的坐标在当前view的正中心,左下角就是(0,0),右下角就是(1,0),左上角就是(0,1),右上角就是(1,1),当然这些都是相对左手坐标系来判定的。
到此,我们对锚点已经有了一个初步的认识,接下来,就是动画的换,先来看一段代码:
self.view.transform = CGAffineTransformMakeRotation(M_PI);
这段代码的意思是把当前的view按顺时针旋转180°,由于锚点默认的是(0.5,0.5)所以这个是以这个view的center在旋转的。如果您的要求就是围绕中心点转得话,那么下面的您可能就不需要那么深入的理解了。
肯定有人会说,现在我不想按照这个中心点旋转,我需要按照右上角的点来旋转,按照一般思路,把锚点改成(1,1)就ok!但是如果你这样做的话,就会出现让你生不如死的效果,view的右上角跳到view的中心点上,所要做的view对象并不会按照你想像中的去变化,这是为什么呢?因为锚点的绝对坐标是不会改变的,虽然改变了锚点坐标,但是它始终都是在原来view的center上,所以就会出现当前状况。
讲到这里,接下来的操作就比较容易了,加一行代码就ok,在设置锚点的同时,把view的center的坐标改变一下,改变这个center的目的就是把坐标改边后的view拉回到原来的位置。这样就可以达到想要的效果了。。。
同样的,在3d变换中也是如此。。。
到此,锚点的设置就告一段落。。。
- 关于动画锚点的设置
- cocos2d关于设置layer锚点
- 关于设置事务回滚保存点的设置
- 锚点对动画的影响
- React Native动画的锚点anchorPoint
- iOS关于启动动画Default.png的设置
- Android 关于切换activity刷屏动画的设置
- fragment设置关于translationY属性的objectAnimator属性动画
- Android 关于动画设置问题。
- 关于elasticsearch的安全设置的一个注意点
- 关于elasticsearch的安全设置的一个注意点
- 关于设置easyui的datetimebox值的注意点
- 关于Android 中TextView字体设置的那点事
- 关于UIScrollView设置约束时需要注意的几点
- 关于ListView设置分割线的那点事
- ObjectAnimator如何设置PivotX(属性动画如何设置起始点)
- 点赞动画的效果
- 动画的设置 pop
- 常用预定义函数
- WordPress中文汉字用户名不能注册怎么办?
- 条款4、确定对象在使用前已被初始化
- Android突破七.SWIG快速入门
- 在JS表格中怎么删除一行(不是指定行,而是我表格中每行后面都有一个删除按钮,按其中一个按钮就删除那一行
- 关于动画锚点的设置
- 【C#】最后总结
- HTML超出文本显示省略号...[text-overflow]
- 【LeetCode】Remove Duplicates from Sorted List II
- 三级联动checkbox 选中
- 超长整数的基础运算 算法实现之模、模幂篇
- discuz x2 移植SAE笔记
- i2c 编程接口
- 图片搜集方法:图片随手找,原型快又好