【发布时间】:2016-01-23 00:32:59
【问题描述】:
我试图在生成新数组并将其保存到 NSUserDefaults 时显示加载动画。动画函数在如下所示的函数中调用:
func getOrCreateCalendar(forYear: Int) -> [DetailedDate] {
if forYear == date.getDateComponents(todaysDetailDate.date).year && calendar.count > 0 {
print("forYear == today's year and the current calendar has been RETURNED FROM MEMORY")
return calendar
} else {
let existingCalendar = getExistingCalendar(forYear)
if existingCalendar != nil {
return existingCalendar!
} else {
SwiftSpinner.show("Generating new calendar for \(forYear)", animated: true)
let calendar = generateCalendarFor(forYear)
print("GENERATED NEW calendar for \(forYear)")
SwiftSpinner.show("Saving calendar", animated: false)
saveNew(calendar, year: forYear)
SwiftSpinner.hide()
return calendar
}
}
我正在使用如上所示的开源 SwiftSpinner 动画。 我在整个代码中的多个位置调用此函数(尤其是整个应用程序中的按钮)。
但是,每当调用此函数时,动画才会显示,直到整个过程完成。 为什么是这样?如何在生成和保存新内容时显示动画,然后在完成后将其关闭?
【问题讨论】:
-
您是否尝试在后台线程中创建并保存您的日历?整个 UI 在主线程中处理;如果你阻塞了主线程,用户界面就会卡住。
标签: ios swift animation save loading