小编Ami*_*eza的帖子

为什么SwiftUI tabItem systemImage被填充?

我为 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

在此输入图像描述

swiftui

23
推荐指数
1
解决办法
3130
查看次数

使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

我在 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)

刷新间隔为 …

xcode background ios swift

6
推荐指数
1
解决办法
3649
查看次数

标签 统计

background ×1

ios ×1

swift ×1

swiftui ×1

xcode ×1