ios - تحميل - مطورين ابل




لا يمكن توصيل المنافذ بتكرار محتوى iOS (4)

لقد أنشأت للتو تطبيقًا وبدأت في تركيب تطبيق IBOutlet على لوحة العمل. أقوم بتوصيل بعض منهم للتسميات في خلية نموذج UITableViewCell مع نمط أساسي. عندما أقوم بتوصيله على الرغم من ظهور هذا الخطأ في لوحة العمل:

منفذ detailText من TableViewController إلى UILabel غير صالح. لا يمكن توصيل المنافذ بتكرار المحتوى.

يمكن للشخص مساعدتي؟ لقد قمت بإعداده بالطريقة التي أقوم بها دائمًا بنجاح ولكن هذه المرة قد صدمتني بهذا الخطأ.


أو ليس لديك لاستخدام IBOutlet للإشارة إلى الكائن في طريقة العرض. يمكنك إعطاء تسمية في tableViewCell قيمة علامة ، على سبيل المثال تعيين العلامة إلى 123 (يمكن القيام بذلك بواسطة مفتش السمات). ثم يمكنك الوصول إلى التسمية من قبل

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "someID", for: indexPath)

    let label = cell.viewWithTag(123) as! UILabel //refer the label by Tag

    switch indexPath.row {
    case 0:
        label.text = "Hello World!"
    default:
        label.text = "Default"
    }
    return cell 
}

إذا كنت تستخدم عرض جدول لعرض الإعدادات والخيارات الأخرى (مثل تطبيق الإعدادات المضمنة) ، فيمكنك تعيين " عرض محتوى الجدول" إلى " الخلايا الثابتة" ضمن "مفتش السمات" . أيضاً ، للقيام بذلك ، يجب تضمين "طريقة عرض الجدول" الخاصة بك في مثيل UITableViewController.


معي لدي UIViewcontroller ، وفي ذلك لدي وجهة نظر مع خلية مخصصة على ذلك. أعيّن مخرج منفذ UILabel إلى UItableviewcell إلى UItableviewcell ثم حصل على الخطأ.


هناك نوعان من خلايا عرض الطاولات المقدمة لك من خلال لوحة العمل ، وهما نموذجان ديناميكيان وخلايا ثابتة

1. النماذج الديناميكية

من الاسم ، يتم إنشاء هذا النوع من الخلايا بشكل حيوي. يتم التحكم فيها من خلال رمزك ، وليس لوحة القصة. بمساعدة مفوض عرض الجدول ومصدر البيانات ، يمكنك تحديد عدد الخلايا ، مرتفعات الخلايا ، نموذج أولي من الخلايا برمجيًا.

عندما تقوم بسحب خلية إلى عرض الجدول الخاص بك ، فأنت تعلن عن نموذج أولي من الخلايا. يمكنك بعد ذلك إنشاء أي مقدار من الخلايا الأساسية في هذا النموذج الأولي وإضافة بعد ذلك إلى طريقة عرض الجدول من خلال طريقة cellForRow برمجياً. تكمن ميزة هذا في أنك تحتاج فقط إلى تحديد نموذج أولي بدلاً من إنشاء كل خلية تحتوي على كل المشاهدات التي تضيفها إليها بنفسك (راجع الخلية الثابتة).

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

لإصلاح هذه المشكلة ، تحتاج إلى توصيل تسمية النموذج الأولي بكائن UITableViewCell . UITableViewCell هو أيضًا نموذج أولي للخلايا ويمكنك بدء العديد من كائنات الخلية كما تريد ، ثم يتم توصيل كل منها إلى عرض يتم إنشاؤه من النموذج الأولي لخلية جدول القصة المصورة.

وأخيرًا ، في طريقة cellForRow ، قم بإنشاء الخلية المخصصة من فئة cellForRow ، cellForRow ممتعة باستخدام الملصق

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier") as! YourCell

    cell.label.text = "it works!"

    return cell
}

2. الخلايا الثابتة

من ناحية أخرى ، يتم تكوين الخلايا الثابتة بالفعل من خلال لوحة القصة. يجب عليك سحب عناصر واجهة المستخدم إلى كل خلية وكل خلية لإنشائها. ستتحكم في أرقام الخلايا ، المرتفعات ، إلخ من لوحة العمل. في هذه الحالة ، سترى عرض جدول مماثل تمامًا لهاتفك مقارنة بما قمت بإنشائه من لوحة العمل. غالبًا ما يتم استخدام الخلايا الثابتة لإعداد الصفحة ، والتي لا تتغير الخلايا كثيرًا.

للتحكم في عناصر واجهة المستخدم لخلية ثابتة ، ستحتاج بالفعل إلى توصيلها مباشرة بوحدة التحكم في العرض لديك وإعدادها







storyboard