我为 tabItem 选择 systemImage“map”和“person”,但图像是填充格式,必须是空心格式。什么原因?
struct TestView: View {
var body: some View {
TabView {
Text("Map!")
.tabItem {
Label("Map", systemImage: "map")
}
Text("Profile")
.tabItem {
Label("Person", systemImage: "person")
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
代码:13.1
SF 符号:3.1
我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务:
BGTaskScheduler.shared.register(forTaskWithIdentifier: BackgroundScheduler.shared.backgroundTaskId, using: DispatchQueue.main) { task in
BackgroundScheduler.shared.handleAppRefresh(task: task as! BGAppRefreshTask)
}
Run Code Online (Sandbox Code Playgroud)
handleAppRefersh 函数安排另一个刷新任务并调用该操作的 fetch 方法,并传递一个完成处理程序以在完成 fetch 操作后运行。
func handleAppRefresh(task: BGAppRefreshTask) {
os_log("handleAppRefresh exetued.")
scheduleAppRefresh()
task.expirationHandler = {
os_log("backgroundFetch expiration called")
}
operation.fetch() {
os_log("backgroundFetch fetch called")
task.setTaskCompleted(success: true)
}
}
Run Code Online (Sandbox Code Playgroud)
ScheduleAppRefresh 提交 BGAppRefreshTAskRequest 以重复后台获取执行。
func scheduleAppRefresh() {
os_log("scheduleAppRefresh exetued.")
let request = BGAppRefreshTaskRequest(identifier: backgroundFetchId)
request.earliestBeginDate = Date(timeIntervalSinceNow: AppSettings.refreshInterval)
do {
try BGTaskScheduler.shared.submit(request)
} catch {
os_log("Could not schedule app refresh:", error.localizedDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
刷新间隔为 …