1
我有一個CALayer,它在Y軸上以離屏形式進行動畫(移動)。 它脫離屏幕後,我正在做一個[myLayer removeFromSuperLayer]
所以它從視圖中消失,並沒有回到起始位置。如何檢查CALayer是否存在
雖然該圖層仍在視圖中,但可以通過按下切換按鈕暫停和恢復,並且這一切都可以正常工作。
唯一的問題是在[myLayer removeFromSuperLayer]
運行我的應用程序崩潰後。 這是由於按鈕試圖暫停或恢復不再存在的圖層造成的。
如何檢查圖層是否被移除或仍然在視圖中?
我覺得這樣的事情對我的切換按鈕暫停部分:
if (self.myLayer == nil)
{
// here i want to add the layer again
[self.view.layer addSublayer:myLayer];
// immediately pause it
[self pauseLayer:myLayer];
}
else
{
// just pause no need to create the layer again because it's still there
[self pauseLayer:myLayer];
}
正如你可能懷疑self.myLayer == nil
是不這樣做的方式,但究竟是什麼?
在此先感謝。
奧克發現另一種方式,所以它不會回到起始位置。 anim.removedOnCompletion = NO; anim.fillMode = kCAFillModeForwards;現在我甚至不必再檢查了。 – ivoos 2011-03-24 00:16:54