gpt4 book ai didi

iOS - 如何按顺序显示大量图像

转载 作者:行者123 更新时间:2023-11-29 03:53:15 24 4
gpt4 key购买 nike

我正在开发一个应用程序,需要按顺序翻转 300 张左右的图像,图像之间有 2 秒的延迟。

这些图像是在显示过程中动态生成的条形码。它们不是存储的图像。

显示屏位于导航 Controller 中,我希望用户能够单击“后退”按钮,而应用程序不会因选择器被发送到不再存在的实例而崩溃。

我知道可以对 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 示例。我已经看过所有这些图像,而且我不想在动画制作过程中将所有这些图像保留在内存中。如果有一种方法可以在动画过程中动态生成图像,那会很有趣。

最佳答案

我认为这样的事情应该有效:

__weak ViewController *bSelf = self;
NSSet *dataSet = [self fetchDataSet];
dispatch_queue_t myQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);
dispatch_async(myQueue, ^{
__strong ViewController *sSelf = bSelf;

for (BoardingPass *data in dataSet) {
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[sSelf updateBarCodeImage:data]
});
}

});

关于iOS - 如何按顺序显示大量图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com