التعامل مع صفوف الجداول Table View Rows
بسم الله الرحمن الرحيم
في هذا الموضوع سنقوم بمناقشة المواضيع التالية في التعامل مع صفوف الجداول :
- طريقة إخفاء الصفوف الفارغة في الجدول .
- طريقة إظهار الصفوف المطلوبة و إخفاء بعض الصفوف ( عن طريق تغيير ارتفاع الصف) .
١- طريقة إخفاء الصفوف الفارغة في الجدول :
سنقوم بعمل جدول وإضافة بعض القيم فيه ( بافتراض بأن لديك معرفه مسبقة لطريقة عمل الجداول) وهذا الجدول الذي قمت بعمله :
نلاحظ بالجدول السابق وجود صفوف فارغة وقد تكون مزعجة نوعاً ما وقد نرغب في إخفائها :
وحتى تقوم بإخفائها كل ماعليك هو اتباع إحدى الطرق التالية :
(لنفترض بأن TableView لدينا اسمه ColorTable)
الطريقة الأولى : إخفاء الـ separator :
باستخدام السطر التالي بداخل دالة viewDidLoad :
ColorTable.separatorStyle = .none
أو من خلال Interface Builder للجدول ColorTable :
وستكون النتيجة كالتالي :
بالنسبة لهذه الطريقة فكما نلاحظ فقد تم إخفاء ال Separetor للجدول كامل .
الطريقة الثانية : بإضافة Footer وجعل الارتفاع له يساوي 0 :
وذلك بإضافة السطر التالي بداخل داله viewDidLoad :
ColorTable.tableFooterView = UIView(frame: .zero)
وستكون النتيجة كالتالي :
الطريقة الثالثة : بإضافة UIView كـ Footer وذلك كالتالي :
١- قم بإضافة UIView أسفل الجدول كما في الصوره ( قمت بتغيير لون UIview للون الأزرق حتى تتضح لكم الفكرة) :
٢- بعد إضافة ال UIview قم بتغيير الارتفاع له بحيث يكون مساوياً لـ 0 وذلك من خلال Interface Builder:
والنتيجة كالتالي :
٢- طريقة إظهار الصفوف المطلوبة و إخفاء بعض الصفوف :
هذه الطريقة نستطيع الاستفاده منها في حاله أردنا إخفاء بعض الصفوف بشكل مؤقت ( وليست حذف للصفوف) وذلك عند تنفيذ أو حدوث أمر معين ، مثال على ذلك لو أردت إنشاء تقويم Calendar
وتحت هذا التقويم ترغب بعرض الأحداث Events لذلك الشهر وإخفاءها في الشهور الأخرى :
الفكرة هنا تكون من خلال تغيير الارتفاع للصف المطلوب وجعله مساوياً لل 0 ، ويتم عمل ذلك من خلال استخدام ال function التالية :
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { }
سنقوم بتطبيق الفكره على جدولنا ColorTable ونقوم بـ (إخفاء) اللون الأصفر من الجدول :
النقاط المهمة لذلك هي :
١- انشاء الدالة التالية للتعامل مع ارتفاع صفوف الجدول :
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return
}
٢- تعريف متغير من نوع CGFloat و تكون قيمته = 0.0 و هو يدل على قيمة الارتفاع للصف :
var rowHeight:CGFloat = 0.0
٣- نستخدم ال if - else وذلك للتحقق من الشرط الذي سيتم إخفاء الصفوف المطلوبة عند حدوثه وتحقق الشرط ففي حاله تحقق الشرط ستكون قيمة المتغير الذي تم تعريفه = 0.0
وإذا لم يتحقق سنجعل ارتفاع الصفوف مثلاً = 60.0 :
let RC = "Yellow"
let cell1 = ColorTable.dequeueReusableCell(withIdentifier: "cell")
cell1?.textLabel?.text = list[indexPath.row]
if (RC == cell1?.textLabel?.text)
{
rowHeight = 0.0
}else {
rowHeight = 60.0
}
return rowHeight
الكود النهائي بداخل الدالة السابقة سيكون كالتالي :
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var rowHeight:CGFloat = 0.0
let RC = "Yellow"
let cell1 = ColorTable.dequeueReusableCell(withIdentifier: "cell")
cell1?.textLabel?.text = list[indexPath.row]
if (RC == cell1?.textLabel?.text)
{
rowHeight = 0.0
}else {
rowHeight = 60.0
}
return rowHeight
}
وبذلك سيتم (إخفاء) اللون Yellow من القائمة :
هذا مثال بسيط جداً لإخفاء الصفوف بشكل مؤقت دون حذفها فقط حتى تصل الفكرة لكم ..
* خلاصة ماتعلمناه اليوم :
- طريقة إخفاء الصفوف الفارغة في الجدول :
من خلال ٣ طرق :
١- إخفاء ال Separator :
ColorTable.separatorStyle = .none
٢- إضافة Footer وجعل الارتفاع له = 0 :
ColorTable.tableFooterView = UIView(frame: .zero)
٣- إضافة UIView كـ Footer وجعل ارتفاعه =0 .
- طريقة إظهار الصفوف المطلوبة و إخفاء بعض الصفوف ( عن طريق تغيير ارتفاع الصف) .
وذلك باستخدام الدالة التالية التي من خلالها نستطيع التحكم بقيمة ارتفاع الصفوف :
public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { }
وبذلك نكون قد انتهينا اتمنى أن أكون قد وفقت في الشرح وتبسيط المعلومة لكم
وأرحب بأي مناقشه وأي سؤال يخص الموضوع ?
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !