كيف أقوم بإنشاء عرض جدول مثل تطبيق إعدادات الشبكة على iPhone؟
-
08-07-2019 - |
سؤال
كيف أقوم بعمل مثل هذا العرض؟ لذلك إذا قمت بتشغيل المفتاح ، فيجب إضافة خلايا.
لقد حاولت بالفعل
[tableView numberForRowsInSection:6];
[tableView reloadData];
لكن هذا لا يعمل كما هو متوقع :(
أيه أفكار؟
أفضل شيء سيكون قسمين يحتوي القسم الأول على 5 خلايا ، يحتوي القسم الثاني على خلية واحدة مع إيقاف تشغيل مفتاح وإذا تم تغيير المفتاح 2 ، فسيتم إضافة خلايا إلى القسم 2. (تمت إضافته مع الرسوم المتحركة :))
MHH ..
شكرا مقدما ، أنا متحمس جدا لكل إجابة :)
المحلول
أين قمت بسحب هذا -numberForRowsInSection:
طريقة من؟ بقدر ما أعرف (والوثائق) ، فإنه غير موجود ولم يكن موجودًا أبدًا كوسيلة لـ UableView. التخمين لن ينقلك إلى أي مكان ، أساليب لا ابتكار أقل بكثير من الهواء الرقيق.
ربما يجب عليك مراجعة بعض البرامج التعليمية التي تغطي أساسيات استخدام UitableView قبل محاولة ذلك. أشك في أن شخصًا ما سيستغرق الوقت الكامل لكتابة فصل كامل للقيام بذلك ووضعه في إجابة ، وستكون أفضل حالًا على المدى الطويل إذا لم تحاول ببساطة نسخ/لصق الرمز الذي أنت لا تفهم. يوجد الكثير من الوثائق والأمثلة التي تغطي UitableView ، وهذا مجرد التفكير في ما هو متاح من Apple - UableView هو فئة مستخدمة بشكل متكرر لدرجة أن البحث عن Google عن شيء مثل "UitableView Tutorial" سيمنحك صفحات وصفحات من النتائج.
سأقدم لك نظرة عامة سريعة على ما ستحتاج إلى القيام به ، على الرغم من: 1. بالطبع ، يمكنك البدء في قالب UitableViewController في Xcode وبدء تخصيصه لتناسب متطلباتك ... قسمين ، ولكن العديد من الصفوف لكل قسم ، إلخ ، تحديد ذلك بناءً على بعض الكائنات على مستوى النموذج إذا لزم الأمر.
ستحتاج إما إلى إنشاء فئة فرعية uitableViewCell مخصصة أو تخصيص تخطيط UitableViewCell بشكل جيد (على الأقل عن طريق إضافة عرض فرعي لـ UISwitch) عند إنشاء كائنات خلايا جديدة في
tableView:cellForRowAtIndexPath:
.يجب تكوين واجهة المستخدم لإرسال رسالة إلى وحدة التحكم في العرض عندما تتغير قيمة التبديل باستخدام
-[UIControl addTarget:action:forControlEvents:]
لUIControlEventValueChanged
حدث.في تنفيذ طريقة الإجراء لتغيير قيمة التبديل هذا ، ستحتاج إلى تنفيذ المنطق لتحديد ما إذا كان ينبغي إضافة صفوف أو طرحها ، ثم إضافة أو طرح الصفوف بالفعل. يمكنك استخدام
beginUpdates
/endUpdates
,insertRowsAtIndexPaths:withRowAnimation:
وdeleteRowsAtIndexPaths:withRowAnimation:
للحصول على سلوك الرسوم المتحركة لسلس صف ناعم بدلاً من مجرد الاتصالreloadData
.