У меня есть CALayer, который анимирует (перемещается) за пределы экрана по оси y. После того, как он за пределами экрана, я делаю [myLayer removeFromSuperLayer]
, чтобы он исчез из поля зрения и не вернулся в исходное положение.
Пока слой все еще отображается, его можно приостановить и возобновить, нажав кнопку-переключатель, и все это отлично работает.
Единственное, что после запуска [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
- это не способ сделать это, но что это такое?
Заранее спасибо.