Я работаю над приложением, которое нужно перелистать через 300 или около того изображений в последовательности с 2-секундной задержкой между изображениями.iOS - Как отобразить большое количество изображений в последовательности
Эти изображения являются штрих-кодами, которые генерируются «на лету» во время отображения. Они не хранятся изображения.
Дисплей находится в контроллере навигации, и я хотел бы, чтобы пользователь мог нажать кнопку «назад» без сбоя приложения с селектора, отправляемого экземпляру, который больше не существует.
Я знаю, что можно оживить UIImageView, но я не хочу создавать большой массив изображений из-за проблем с памятью.
Я хотел бы сделать это в цикле, где я создаю штрих-код, отображаю изображение, задерживаю 2 секунды, а затем повторяю со следующим изображением.
Следующий код работает, но сбой, если вы нажмете кнопку «назад», с сообщением «сообщение отправлено на освобожденный экземпляр».
NSSet *dataSet = [self fetchDataSet];
for (MyBarCode *data in dataSet) {
// display barcode in UIImageView
[self updateBarCodeImage:data ];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow: 2.0]];
}
Там, кажется, не быть способ, чтобы отменить этот таймер, или я мог бы сделать это в viewWillDisapear.
Каков правильный способ сделать это?
Пожалуйста, не просто укажите мне примеры animationImages. Я уже видел их всех, и снова - я не хочу, чтобы все эти изображения сохранялись в памяти во время анимации. Если есть способ генерировать изображения «на лету» во время анимации, теперь это было бы интересно.
Ну, я нашел один метод, который работает. Я начал не повторяющийся NSTimer, который вызвал метод, который обновил изображение, а затем запланировал еще один таймер сделать то же самое через 2 секунды. Преимущество заключается в том, что таймер может быть отменен в viewWillDisappear. – John
Что делает «updateBarCodeImage»? – magma
Он генерирует следующее изображение штрих-кода и отображает его в UIImageView. – John