gpt4 book ai didi

iphone - NSOperation mainQueue 问题

转载 作者:行者123 更新时间:2023-12-01 19:19:10 24 4
gpt4 key购买 nike

我有幻灯片,我想显示大图,我添加到 [NSOperation mainQueue]低优先级的操作,此操作显示图像。

如果图像很小,一切正常,但是当图像大约为 5Mb 时, View 会卡住 1 秒,并且我无法滚动幻灯片。我认为,对于 iPhone 来说显示大图像非常困难,主队列太重载了。

但我不明白,因为我所有的显示代码都是以低优先级操作执行的。

这是显示代码。

[imageView removeFromSuperview];
imageView = nil;

// reset our zoomScale to 1.0 before doing any further calculations
self.zoomScale = 1.0;

// make a new UIImageView for the new image
self.imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
[self addSubview:imageView];

self.contentSize = [image size];
[self setMaxMinZoomScalesForCurrentBounds];
self.zoomScale = self.minimumZoomScale;

也许我可以设置手势识别器的优先级( UIScrollView 的常规问题识别器?)

更新

请看我的新话题,我更恰本地描述了这个问题 my topik

最佳答案

优先级与调度有关。如果您在 runloop 迭代期间排队一堆操作,那么它们将按其在该队列上的优先级执行。

加快此速度的一种解决方案是包含缩放到您正在显示它们的确切大小的资源。如果您尝试在 200x200 区域中显示 2000x2000 像素图像,那么系统会在内存中缩放所有这些东西.您还可以以编程方式动态创建更小的图像以适应图像。这可以在后台队列上完成,因此您的 UI 仍然可以响应。

How to resize the image programmatically in objective-c in iphone

关于iphone - NSOperation mainQueue 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158294/

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