مقدمة سريعة ل SwiftUI

SwiftUI هي وسيلة مريحة جديدة لإنشاء واجهات المستخدم على Xcode. إذا كنت تريد مقدمة سريعة لـ SwiftUI ، فإن نشر المدونة هذا يناسبك.

للبدء ، دعنا ننشئ مشروعًا بدعم SwiftUI. متطلبات النظام الدنيا لذلك هي macOS Catalina و Xcode 11. قم بإنشاء مشروع جديد "File> New> Project ..." ، واختر "Single View App" وتأكد من تحديد "واجهة المستخدم: SwiftUI" .



سيبدو المشروع كالتالي:



كما لاحظت ، يمكنك الآن رؤية جميع التغييرات على الفور في المعاينة . على سبيل المثال ، حاول تغيير النص إلى "Hello، Habr!" . رائع نعم؟

إذا لم تكن هناك تغييرات ، فانقر فوق الزر " استئناف" (في الزاوية اليمنى العليا). إذا كانت المعاينة غير مرئية - انقر فوق خيارات المحرر وتأكد من تحديد Canvas (ptOptions + ommCommand + nEnter) .


عرض ، نص ، مكدس ...


إذا قمت بتحديد ContentView.swift ، فسنرى :

struct ContentView: View { var body: some View { Text(", !") } } 

هنا نرى أن ContentView> النص يحتوي على نص يعرض "Hello، Habr!" . لنقم بإضافة نص آخر. إذا حاولت إضافة مباشرة إلى عرض الجسم ، فسيقسم Xcode. للقيام بذلك ، استخدم أولاً HStack أو VStack . اضغط على Command وانقر فوق Text (⌘Command + Text) ، ثم حدد "Embed in HStack" .



سيقوم هذا الأمر تلقائيًا بإنشاء HStack وإضافة نصنا إلى هناك. يمكنك الآن إضافة نص آخر:

 struct ContentView: View { var body: some View { HStack { Text(",") Text("!") } } } 

سويفتوي المفتش


إذا قمت بالنقر فوق "ommCommand + Text" وحدد "Show SwiftUI Inspector ..." ، فسيتم فتح مفتش حيث يمكنك تغيير خصائص النص بصريًا. على سبيل المثال ، إذا تم تغيير "الخط" في المفتش إلى "العنوان الكبير" ، فسيتم أيضًا تغيير الرمز إلى .font (.largeTitle) . بسيط جدا:



ما هي الدولة ؟


لفهم ماهية الدولة ، دعونا نضيف بعض الإجراءات. نكرر ما فعلناه من قبل: "ommCommand + HStack" ، حدد "Embed in VStack" ، ثم أضف Button إلى VStack :

 struct ContentView: View { @State var tapCount = 0 var body: some View { VStack { HStack { Text(",") .font(.largeTitle) .foregroundColor(Color.green) Text("!") .font(.largeTitle) .fontWeight(.bold) } Button(action: { self.tapCount += 1 }) { Text("Tap count \(tapCount)") .font(.title) } } } } 

في كل مرة تنقر فوق الزر ، نقوم بتغيير قيمة tapCount . لكن ماذا تعني الدولة ؟ إذا كنا نريد أن يتم عرض وجهة نظرنا من جديد عندما تتغير بعض القيم ، فعلينا استخدام الحالة . في هذه الحالة ، عندما نضغط على الزر ، نقوم بتغيير tapCount ، والذي تم تحديده على أنه حالة . هذا هو السبب في كل نقرة يتم تقديم جسدنا مرة أخرى.

المعاينة المباشرة


في الوقت الحالي ، إذا قمت بالنقر فوق الزر ، فلن يحدث شيء. لإصلاح ذلك والعمل كمحاكاة ، تحتاج إلى تنشيط "المعاينة المباشرة" . يوجد زر التنشيط في أسفل اليمين:



حاول الآن مرة أخرى. في كل مرة تضغط فيها على الزر ، ستتغير القيمة.

ما التالي؟


الآن لديك المفهوم الأساسي ل SwiftUI. علاوة على ذلك ، أنصحك بقراءة دروس SwiftUI ، ومشاهدة فيديو WWDC حول SwiftUI . الوثائق يمكن العثور عليها هنا .

رابط لمشروع جيثب هنا .

Source: https://habr.com/ru/post/ar483316/


All Articles