У меня есть 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
это не способ сделать это, а что такое?
Заранее спасибо.