繁体   English   中英

iPhone翻页过渡-中途可以通知我吗

[英]iPhone Flip Transition - Can I get notified at the half way point

我有一个UIView可以绘制一组项目中的任何一个。 也就是说,我的一个UIView子类可以被告知绘制例如正方形,圆形或三角形。

我想要一个过渡来翻转该视图,以便UIView在中途点绘制一个不同的形状,所以看起来我正在过渡到另一个视图,但实际上我只是在重新绘制单个视图过渡的中间点。

有办法做到这一点,而不必求助于使用两个不同的UIView并在动画块中换出它们吗? 对我不得不使用交换机制的内容重新调整会有些笨拙。

理想情况下,我需要做的是回调或通知动画处于中间位置,然后再用新形状重新绘制视图。

谢谢你的帮助!

即使您确实知道翻转动画的中点,我也不认为在中间动画时重新绘制视图的内容会做任何事情。 我认为视图层的内容是在动画开始时缓存的,并且不会随着动画的进行而改变。 此外,如果动画后面没有其他视图,则视图最终将在动画结束时从左到右反转。

如果您希望将其作为自定义动画来实现,则可以使用我在此答案中描述的Mike Lee的Lemur Flip实现之类的东西将其分成两半。 在动画的上半部分之后,您可以重新绘制视图的内容并完成动画,然后从头开始。

但是,对我来说,不切换视图以适应过渡似乎更加笨拙。 当然,这需要更多的代码才能完成。

您可以尝试这样做。 例如,您的animationDuration属性设置为2.0f。 因此,中点为1秒,因此您可以使用

[自我performSelector:@selector(yourCallbackMethod)withObject:nil afterDelay:1.0f];

据我所知,您可以执行此操作的唯一方法是使用Core Animation重新创建动画,然后使用计时器监视presentationLayer中的动画。 核心动画层中没有可用的KVO,因此您必须对其进行显式监视。

换句话说,这可能不值得。 我建议您考虑另一种解决问题的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM