خاصية @State
جزء من قسم مقدمة إلى SwiftUI في رحلة Swift على Coddy. الدرس 20 من 50.
تُعاد حسابات جسم العرض من بياناته. للحصول على بيانات تتغير، ضع علامة @State على خاصية. عندما تتغير خاصية الحالة، تُشغّل SwiftUI الجسم مرة أخرى وتحدّث الشاشة:
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
Button("Add one") {
count += 1
}
}
}
}كل نقرة تنفّذ count += 1، ويعرض النص الرقم الجديد. لا تحدّث النص بنفسك أبدًا: يوصف النص بدلالة count، لذلك يتبع القيمة.
لا يمكن تغيير var عادي في واجهة من جسمها، لأن الواجهات عبارة عن هياكل. تخزّن @State القيمة خارج البنية، لذلك تظل موجودة بعد كل إعادة رسم. اجعل الحالة private: فهي تخص هذه الواجهة.
التحدي
سهلأكمل عدّاد النقرات. إجراء الزر فارغ: اجعل كل نقرة تضيف 1 إلى taps، بحيث يعرض النص Taps: 1 بعد نقرة واحدة وTaps: 2 بعد نقرتين.
جرّب بنفسك
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى SwiftUI
تدرّب بنفسك: Playground لـ Swift