Я создаю небольшое приложение для яблочных часов. У меня есть группа и ярлык внутри нее. Я пытаюсь сделать это:
- анимационное фоновое изображение группы
- исчезает в метке после окончания анимации изображения.
Мой код выглядит примерно так:
group.setBackgroundImageNamed("show_back-");
group.startAnimatingWithImagesInRange(NSMakeRange(0, 39), duration: 1.5, repeatCount: 1);
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1.5 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) { () -> Void in
self.animateWithDuration(1) { () -> Void in
self.label.setAlpha(1)
};
};
Проблема в том, что при первом запуске этой последовательности анимация изображения работает медленнее 1,5 секунд, потому что ярлык начинает исчезать раньше, чем перестает меняться изображение. Если это снова запускается во время работы приложения, все работает так, как ожидалось. Я предполагаю, что это имеет какое-то отношение к предварительной загрузке изображений или к чему-то.
Как я могу заставить его работать последовательно? Я не смог найти какой-либо обратный вызов для анимации последовательности изображений, чтобы подписаться на нее.
ИЗМЕНИТЬ Еще одна проблема, которую я заметил: у меня есть другой случай, когда bg анимируется из блока dispatch_after, и когда я покидаю приложение, нажав на корону и вернусь, дважды нажав на нее, либо блок dispatch_after не запускается, либо фоновая анимация не отображается правильно при первом вызове (я думаю, второй, потому что я попытался добавить точку останова в блок отправки и запускался каждый раз, когда я тестировал). Я запускаю watchOS2, так что, возможно, это связано с бета-состоянием, в котором находится ОС?