- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我按下一个按钮时,我开始了一个计算循环,并且需要能够随着它的进行更新主视图。由于这是一个后台线程,屏幕在调用完成之前不会更新。我如何在 Swift 中实现这一目标?这是我目前的简化方法,但行不通。
@IBAction func calculatePower(sender: AnyObject) {
for day in 1...365 {
dispatch_async(dispatch_get_main_queue()) {
self.dayLabel.text = "\(day)"
}
}
}
我通常会在循环中添加一些 0,否则它会很快完成从 1 到 365 的过程。
在 Cocoa 中我会使用这样的语句:
[self performSelectorOnMainThread:@selector(updateDisplayEnergySunEquator:) withObject:[NSNumber numberWithDouble:distanceFromSun] waitUntilDone:YES];
有什么想法吗?
最佳答案
@IBAction 函数在按下按钮时在主线程中调用。发生的情况是你的闭包在主线程上排队,但你的主线程正忙于处理你的循环。基本上,您是在一个线程中执行异步工作。
要在另一个线程上运行循环,将其包装在 dispatch_async
中并使用另一个队列。
@IBAction func calculatePower(sender: AnyObject) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
for day in 1...365 {
dispatch_async(dispatch_get_main_queue()) {
self.dayLabel.text = "\(day)"
}
}
}
}
关于swift - 从后台线程更新主视图 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376387/
我有一个基于 REST 的经典 springboot 应用程序。我想开始使用 Vaadin,以便直接从 java 代码创建 ui 组件。 我在他们的教程中发现,您必须使用 @Route('') 创建一
为了设计,我使用 Storyboard。主页 View Controller 包含单独 View 中的侧面菜单,我设计了带有 Collection View 的主页。对于侧面菜单,我使用包含 MyNa
我正在寻找如何为 UWP Win 10 应用程序构建主/详细 View 的好示例,如本页所示:https://msdn.microsoft.com/en-us/library/windows/apps
我遇到这个问题,在 iPhone 7 Plus 的横向模式下,当单击设备左侧表格 View 中的单元格时,内容会显示在表格 View 的顶部,或者替换表格 View .在这种情况下, Split Vi
我想改变我的主视图(不是按钮或 TextView )的背景颜色,只是通常是黑色的真实背景......我得到了这个代码: view.setBackgroundColor(0xfff00000); 这在
我正在尝试在 Android 应用程序中使用 Wikitude API,但相关文档很少。 那么,有什么办法可以在wikitude View 中添加一个action bar吗?还有一些按钮?因为我只看到
我正在尝试隐藏 navigationViewControleler 层次结构的桅杆 View Controller 中的工具栏。 我创建一个新的 ViewController 作为 RootViewC
已关闭。此问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我正在寻找实现可编辑详细 View 的可能性。我的应用程序有一个经典的主 -> 详细 View 设置。苹果文档(http://developer.apple.com/library/ios/#feat
我正在使用一个框架,该框架使用其特定控件创建 UIViewControllers。我无法访问其 Storyboard来手动修改它。有没有办法向其 View 添加标签之类的内容并正确定位它,即使 Vie
我有带 subview 和应用约束的 View Controller 。 问题:我想做的是以编程方式添加 ScrollView 只有 iPhone 4s 设备在 ScrollView 中具有 self
我有基本的主视图/详细 View 与默认的 ASP.NET MVC 路由配合得很好;但是我想构建一些这样的 URL: /Class/Details/5 -- General Detail view [
我需要在 Split View Controller 中更改 View Controllers 的宽度大小。我的意思是第一个 View Controller 的默认值是 320。第二个是 703。我需
我是一名优秀的程序员,十分优秀!