Правильный способ кэширования анимированного изображения в Apple Watch?
Я занимаюсь разработкой приложения для Apple Watch, отображающего данные с помощью WKInterfaceTable, каждая строка имеет анимированное изображение (80 кадров, длительность 10 секунд)
Я хочу анимировать это изображение каждые 10 секунд, но есть проблема, из-за которой часы сильно задерживаются, когда изображение завершает анимацию и снова начинает анимацию.
Я попытался удалить анимированное изображение, чтобы проверить, не вызвана ли проблема задержкой изображения, и в результате получилось ДА.
Я искал решения для кэширования изображения на Apple Watch, я сделал следующий код:
Во-первых, ленивая загрузка изображения с iPhone, создание анимированного UIImage
- (UIImage *)countDownImage
{
if (_countDownImage == nil) {
NSMutableArray *array = [[NSMutableArray alloc] init];
for (int i=0; i<=79; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"counteight-%i", i]];
[array addObject:image];
}
_countDownImage = [UIImage animatedImageWithImages:array duration:10.0f];
}
return _countDownImage;
}
Во-вторых, в моем WKInterfaceController, который содержит WKInterfaceTable
Добавить кэшированное изображение в кеш, используя WKInterfaceDevice
if ([[WKInterfaceDevice currentDevice].cachedImages objectForKey:@"countImage"] == nil) {
[[WKInterfaceDevice currentDevice] addCachedImage:self.countDownImage name:@"countImage"];
}
Наконец, в моем RowController используйте setImageNamed от WKInterfaceImage, чтобы установить изображение, которое я ранее кэшировал
[self.animateImage setImageNamed:@"countImage"];
[self.animateImage startAnimatingWithImagesInRange:NSMakeRange(0, 79) duration:10 repeatCount:0];
Это работает, и изображение было кэшировано (Проверено:
[[WKInterfaceDevice currentDevice].cachedImages objectForKey:@"countImage"]
)
Но он все еще очень запаздывает на реальном устройстве Apple Watch, даже медленнее, чем не установленное изображение кэша.
Я не знаю, где я делаю не так, может кто-нибудь дать мне совет, как правильно кэшировать анимированное изображение на Apple Watch?
Спасибо!