美文网首页
iOS 视图围绕指定点旋转

iOS 视图围绕指定点旋转

作者: _我和你一样 | 来源:发表于2018-04-01 23:45 被阅读0次

今天在做一个旋转动画时,需要这个view像时钟的针那样绕中心点旋转。
默认一个视图旋转时是绕自身的中心点进行旋转的。
我知道本质上是围绕自身的锚点进行旋转的。
于是更改了锚点,锚点的默认值是(0.5,0.5) 我改成了(0.5,1.0) 在x轴方向上,位于视图的中间,在y轴方向上位于视图的底部。旋转起来达到理想的状态了。
但是问题出来了,更改锚点之后,视图的frame发生了变化。造成视图上移。

更改锚点是会更改frame的。我尝试在变更锚点之后重置frame。发现没有效果,但是上网看了看几乎都是如此处理的。其中有一篇我觉得写的很好。详解CALayer的anchorPoint和position

真是尝试了好久,更改frame也不行,更改positon也不行。

把约束拉出来,设置完锚点之后重置设置约束,还是不行。

最终,原来是约束做的鬼。

一开始我是使用StoryBoard为视图添加的约束,要做动画变化的视图也在其中。

于是,后续无论修改frame,都无效。但是看约束明明没问题。

总之,这里要对视图做仿射变换,如果更改了锚点,就要重新设置frame,而约束可能造成代码重置frame失效。

最后的解决方案就是,要做变换的视图,不能使用约束。

要在代码中,计算frame值。在修改重置的时候,重置frame就好了。

相关文章

  • iOS 视图围绕指定点旋转

    今天在做一个旋转动画时,需要这个view像时钟的针那样绕中心点旋转。默认一个视图旋转时是绕自身的中心点进行旋转的。...

  • 5.13 关于锚点是怎么回事

    关于 一个视图围绕另一个视图的设置 1.视图中有两个小 View,我要做的就是上面的红色视图围绕蓝色视图的中心旋转...

  • iOS 一款可绕指定点旋转、缩放的多功能贴纸

    iOS 一款可绕指定点旋转、缩放的多功能贴纸 支持双指手势操作,单指移动控制图操作,满足你所有需求 先上效果图: ...

  • blender 操作 mac 纯键盘版

    两指滚动旋转• control+两指 视角缩放• shift+两指 视角平移• 同时查看三个视图加自由视图 co...

  • iOS 问题统计

    1.围绕锚点旋转错位做围绕锚点旋转的动画,视图展现的效果是一会正确,一会错误,打印frame确是正确的,经过网上查...

  • SVG围绕某一点缩放,旋转

    SVG提供了围绕某一点旋转的标准方法(rotate(angle, px, py),px,py代表指定点的坐标),没...

  • 为什么我的UIViewController不能跟随设备旋转?

    UIViewController类为iOS应用程序提供了基本的视图管理模型。它自动支持旋转控制器的视图,以响应设备...

  • iOS旋转横屏(解决禁用旋转时全频横屏方法)

    禁用设备自动旋转时的横屏方法 监听设备旋转 原理:给要横屏的视图添加父视图,旋转这个父视图 不禁用设备自动旋转横屏...

  • iOS之屏幕旋转

    检测屏幕旋转:视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写几个方法: 视图控制器中的方法: 视图...

  • 旋转动画

    rotateX就是围绕着X轴旋转;rotateY就是围绕着Y轴旋转;rotateZ就是围绕着Z轴旋转;

网友评论

      本文标题:iOS 视图围绕指定点旋转

      本文链接:https://www.haomeiwen.com/subject/fguzcftx.html