【iOS/工作感悟】一次简单的旋转动画引发的思考(非技术向)

本文作者分享了一次在工作中遇到的简单旋转动画实现的困扰,揭示了工作问题解决并非单纯依赖搜索引擎,而是需要对问题进行有效的分解和深入思考。文章强调了分解问题的能力和方向选择对于解决问题的重要性,并通过动画实现的例子说明了错误的思路可能导致事倍功半。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

曾经我有这样一种的想法,只要善用百度谷歌,并且肯花时间去研究,基本就能解决大部分问题。

但到了实际工作时就会发现,这样的想法太过美好了。

1.工作的问题基本上不可能直接在网上找到解决方案,需要对问题进行分解。工作问题一般会被分解为业务层面和技术层面,前者基本不可能在百度中找到答案,需要通过内部的确认;后者也非全部依赖百度,还需要进行分解,剥除了内部实现那部分之后,剩下的才是能在网上找到答案的问题;

2.基于1,工作问题的分解是一种能力。我有一个不做技术但偶尔需要编程的朋友,有时他会问我比如为什么这个实现不了问题,举个例子,“为什么我的Vue按这个教程装不了?”,然后给了我教程链接告诉我哪里卡住。我一般会先反问,你百度了吗?通常他的回答是我百度不到。实际上我也没用过Vue,但按照第一点的原则我会这样分解,首先剥除教程这一点,因为教程属于“业务”,针对(博客性质的)教程寻找解决方法有点蠢,所以我会看一下出问题这一步的报错,显示依赖没有装上,这时百度“XX依赖提示错误”这种问题一般可以获得解决问题的思路。

3.同一个问题,分解的形式也很多样。除了掌握分解的能力,还要把握分解的方向,这是我在最近一次版本开发中的切身体会,下面详细说一下。


需求

做一个小火箭的Icon在轨道上面飞的动画。

设计给了两种图,一个是只有小火箭,一个是小火箭在轨道上面,如下图

其实在看到第二种图的时候就应该有正确的思路,但当时已经先入为主的陷入另一种思维模式了。

开发思路和过程

在设计给图时我就没有思考一个问题,为什么会有第二种图。

最直接的思路是轨道是固定的,火箭在上面转,所以采用了图1+自己画轨道的方式。

画轨道很容易,把火箭放上去也很容易,该考虑动画了。

第一个思路明显是脑子短路的想法,想的是火箭需要绕Z轴自转,同时绕圆心旋转。

其实一看就有点蠢,但偏偏是我纠结了最久的。问题点在于两个旋转动画如何兼容。

经过一番努力放弃了这个尝试,但还没有意识到这个方法的荒谬,进行了一种“优化”的设计。

第二个设计方案就是把火箭放进一个UIView里面,自转是给小火箭的动画,绕圆心公转是给UIView的动画

依然不行,其实这时候就应该认识到了一点,绕View外一点旋转应该是有问题的,可惜并没有。(这一点并不能完全确定,因为我都是按照网上的方法设置ancherPoint 和 position,并没有研究属性的具体含义)

第三回我醒悟了一点,为什么不直接让小火箭绕圆心旋转呢?

如上所言,我并没有能实现小火箭绕外部点旋转的动画。

在经历了四回愚蠢的尝试后,我终于开窍了,为什么不直接让轨道和火箭一起转呢?

于是直接给轨道+火箭的View加上CA基本动画,完成。


补充一点,用的是CA动画,进出后台的时候会自动把动画给停掉(Why?)

所以需要监听一下进出后台的通知,在进入前台时重绘动画。


说实话在做完之后回头思考,这个动画其实就是5分钟的事情,但是因为从一开始就想偏了解决方法,所以最后花费了差不多半天的时间。问题其实就出于自己在解决问题之前对解决方案缺乏思考,也就是开头所说的分解问题方向错误,习惯于想到方法就去实践,而不是考虑“是否有更好的方法呢?”。

方向的错误意味着之后无论怎么善用百度谷歌,无论怎么熟悉业务技术,也无助于问题的解决。谨以此文记录下这次并不成功的需求开发,提醒自己在日后每一次面对问题时都应该持有的严谨、冷静的态度。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值