作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Can we update UI from background Thread?
(1 个回答)
3年前关闭。
从 iOS 上的 Xcode 10 开始,以下内容崩溃了:[Animation] +[UIView setAnimationsEnabled:] being called from a background thread. Performing any operation from a background thread on UIView or a subclass is not supported and may result in unexpected and insidious behavior. trace=...
从后台线程启动时。
+(UIImage *)circularImage:(UIImage *)image withDiameter:(NSUInteger)diameter
{
CGRect frame = CGRectMake(0.0f, 0.0f, diameter, diameter);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.clipsToBounds = YES;
[imageView setImage:image]; <--- crashing here
...
}
最佳答案
您只能从主线程访问 UI 元素。您无法从其他线程访问它。这就是应用程序崩溃的原因。使用下面的代码。
dispatch_async(dispatch_get_main_queue(), ^{
//update your UI stuff here.
});
DispatchQueue.main.async { // your UI stuff here }
关于ios - 自 Xcode 10 起,UIImageView setImage 在后台线程上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52448204/
我是一名优秀的程序员,十分优秀!