gpt4 book ai didi

带有 Assets 目录的 iOS 图像切片会产生奇怪的伪像

转载 作者:行者123 更新时间:2023-11-29 02:38:39 25 4
gpt4 key购买 nike

我被这个奇怪但希望很简单的问题困住了,希望得到一些帮助!

我已将 Assets 目录中的图像切片成如下所示:

enter image description here

然后我将这张图片作为 UIImageView 的背景放在 xib 中:

enter image description here

这个 xib 称为“tagElement”并作为 UIScrollView View Controller 的 subview 加载:

tagElement_View * tagElement = [[tagElement_View alloc] initWithFrame:CGRectZero Delegate:self Tag:tag andIndex:tagArray.count - 1];
[scrollView addSubview:tagElement];

然后,当 View 最终加载时,瞬间看起来像这样:

enter image description here

但是,片刻之后 View 就稳定下来了:

enter image description here

有谁知道什么会导致图像在片刻之后才发生调整?

谢谢!

更新:

好的,经过几个小时的调试,我找到了解决方案。我需要像这样在完成 block 中将 UI 更新代码提交到主线程:

dispatch_async(dispatch_get_main_queue(), ^(void){

// UI Updating Code

});

虽然它在工作,但我不确定为什么我需要调用它。我从来没有启动另一个线程来执行后台工作,而且看起来我只是把这个任务放在主线程上。但无论如何,这不是执行任务的线程吗?

最佳答案

在这种情况下,您通过调用dispatch_async(dispatch_get_main_queue())所做的事情是要求等待运行循环的一圈。当所有绘图、布局和动画发生时,这会让您通过当前事务的提交。这反过来又可以防止您的代码踩到自己的脚上。这是一种标准技术,在像 iOS 这样的系统中非常有用,在 iOS 系统中,绘图在事务提交之前不会发生。就你而言,它可以改善绘图;在许多情况下,它甚至可以防止崩溃(如此处:https://stackoverflow.com/a/13907375/341994)。

关于带有 Assets 目录的 iOS 图像切片会产生奇怪的伪像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050579/

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