探究transform与center

测试1 记录下控件的初始center,修改他的center,然后再重设他的center,把他恢复为初始位置
结果:成功
过程: 一个控件一开始的frame是(0,0,20,20),他的中心点就是(10,10)
设置他的center为100,100;
于是他会往右走90,往下走90,frame是(90,90,20,20),他的中心点是(100,100)
再次设置他的center为10,10,他会回到起点

测试2 记录下控件的初始center,修改他的transform,然后再重设他的center,把他恢复为初始位置
结果:修改transform并不能改变他的中心点,要想重新回到初始位置只能通过设置transform为Identity,或者把他的中心点减去移动的transform的值
过程:一个控件的一开始的frame是(0,0,20,20),他的中心点就是(10,10)
设置他的transform:CGAffineTransformMakeTranslation(100, 500);
于是他会往右走100,往下走500,frame是(100,500,20,20),他的中心点是(10,10)
发现中心点没有改变,所以接下来继续重设他的中心点为最初的center没有用

测试3 记录下控件的初始center,修改他的center,然后再重设他的transform,把他恢复为初始位置
结果:无法修改transform。

结论:center是指控件在父视图上的位置,可是修改了控件的transform后,就并不能很好地修改center来改变控件的位置了。 因为transform改变了控件的真实位置,但是并没有改变控件的center。 直接修改center的话或者frame,会在当前位置进行移动。 最好是先恢复transform为identity

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,898评论 25 709
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,251评论 5 13
  • 拍摄地点:武夷山市武夷学院 拍摄器材:vivo x5v 拍摄日期:2016.10.05 图片版权归本人所有,图片授...
    林辰砂阅读 298评论 11 2
  • 最近一直在找,干什么工作是自己最喜欢的,最放松的,找了很多,如下: 讲课,唱歌,读书,认真的写东西,整理东西,细致...
    彭晓芬阅读 172评论 0 1
  • 我特别能体会那种当众被人批评与鄙视的愤恨,自小我就经常被父母,被老师责骂,小学的时候,可以这样说,基本上我交了一次...
    权慧阅读 286评论 0 0

友情链接更多精彩内容