0

我有一个 CALayer,我想更改它出现在屏幕上的自定义动画。我创建了一个委托,以便我可以捕获该方法:

- (id < CAAction >)actionForLayer:(CALayer *)layer forKey:(NSString *)key

我检查了密钥是否等于 kCAOnOrderIn,但是,尚未告知该层它的边界是什么(它当前报告边界的 (0, 0, 0, 0))。所以然后我尝试检查键是否等于“边界”,但我仍然得到报告相同的矩形(0、0、0、0)。

我想要做的动画不是图层通过不透明度逐渐“淡出”到屏幕上,而是希望它从小到中间生长到屏幕上,直到它的完整边界。但要做到这一点,我需要知道它的完整界限是什么。无论如何都知道这样我可以替换自定义动画,还是我只是以错误的方式接近这个?

谢谢

4

1 回答 1

1

我知道这是 3 个月大,但我正在寻找类似问题的答案,并注意到这没有答案(我想要一些代表;)

我正在覆盖 UIView (iPhone SDK) 上的 actionForLayer:forKey:,该 UIView (iPhone SDK) 自动设置为其支持 CALayer 的委托,以便为锚点注入不同的操作。我注意到我可以通过 CALayer 的presentationLayer 访问旧值,而新值在modelLayer 中。但是我认为在您的情况下发生的事情是,在您告诉图层它的边界之前,系统正在调用 onOrderIn 操作(可能是在将图层添加到视图层次结构时)。事实上这是正常的。

除了“onOrderIn”键之外,您还应该等待“边界”。

你在等其他钥匙吗?“onOrderOut”还是“隐藏”?

干杯,科林

于 2010-06-03T12:47:34.817 回答