Acess Widget View จากแอพ ContentView ใน SwiftUI
Sep 25 2020
สิ่งที่ฉันต้องการจะแสดงมุมมองวิดเจ็ตบนหน้าจอหลักของแอปเหมือนกับที่ทำในแอปนี้:
ฉันพยายามโทรWidgetEntryViewจากแอพของฉัน แต่มันไม่ได้ผล
คำตอบ
1 pawello2222 Sep 25 2020 at 05:20
- สร้างไฟล์แยกเฉพาะสำหรับคุณ
ViewและEntry:
struct SimpleEntry: TimelineEntry {
let date: Date
}
struct SimpleWidgetEntryView: View {
var entry: SimpleProvider.Entry
var body: some View {
Text(entry.date, style: .time)
}
}
- ตั้งค่าความเป็นสมาชิกเป้าหมายสำหรับไฟล์เหล่านี้เป็นทั้ง App และ Widget
- Xcode“ Targets” พร้อมการกำหนดค่าบิวด์หลายแบบ
สิ่งสำคัญคือคุณต้องเลือกเฉพาะสองไฟล์นี้ - ตรวจสอบให้แน่ใจว่าคุณไม่ได้เพิ่ม@mainWidget / WidgetBundle ของคุณไปยังเป้าหมายแอพ
- แสดงมุมมองวิดเจ็ตโดยตรงใน ContentView:
struct ContentView: View {
var body: some View {
SimpleWidgetEntryView(entry: .init(date: Date()))
}
}
นี่คือที่เก็บ GitHub ที่มีตัวอย่างวิดเจ็ตต่างๆรวมถึงวิดเจ็ตแสดงตัวอย่าง
EmilioPelaez Sep 25 2020 at 05:28
ฉันเขียนตัวควบคุมมุมมองเพื่อแสดงวิดเจ็ตในแอป UIKit ฉันสร้างขึ้นเพื่อทำให้ภาพหน้าจอของฉันเป็นแบบอัตโนมัติ แต่คุณสามารถใช้เป็นข้อมูลอ้างอิงได้
คุณสามารถดูว่าจะดูที่นี่
มีการรองรับวิดเจ็ตทุกขนาดและแม้ว่าจะไม่มีขนาดที่แน่นอน แต่ฉันคิดว่ามันทำได้ดีพอสมควร
เช่นเดียวกับที่กล่าวไปแล้วคุณจะต้องเพิ่มไฟล์มุมมองวิดเจ็ตบางไฟล์ไปยังเป้าหมายแอปของคุณด้วย