سؤال

أنا في مرحلة مبكرة جدًا من عملية تعلم تطوير iPhone.أحاول أن أحرك رأسي حول القطع المختلفة.لقد قمت الآن باستخدام قالب NavigationController الأساسي وأحاول إنشاء عرض جدول مجمع بسيط يحتوي على حقلين نصيين.ما لا أستطيع فعله هو جعل Interface Builder يسمح لي بإسقاط UITableViewCell في UITableView حتى أتمكن بعد ذلك من إضافة حقل نص إلى الخلية.هل هذا ممكن (يبدو أنه من المفترض أن يُعطى حقيقة أن UITableViewCell هو عنصر تحكم قابل للسحب)؟

إذا لم يكن الأمر كذلك، فهل هذا يعني أن كل هذا عبارة عن رمز سأحتاج إلى كتابته بنفسي؟

هل كانت مفيدة؟

المحلول

يمكنك إنشاء الخلية باستخدام Interface Builder، ولكن يجب أن تجعلها كائنًا عالي المستوى، بدلاً من كائن تابع لعرض الجدول.ثم يمكنك إرجاع هذه الخلية إلى وحدة تحكم العرض الخاصة بك عرض الجدول: cellForRowAtIndexPath: وظيفة.

تأكد من إعطاء الخلية معرف في Interface Builder ثم استخدم نفس المعرف مع dequeueReusableCellWithIdentifier: (راجع نموذج التعليمات البرمجية لمعرفة كيفية عمل ذلك - الفكرة هي إعادة استخدام الخلايا - سيخصص نظام التشغيل فقط أكبر عدد ممكن من الخلايا التي تناسب الشاشة في وقت واحد.طريقة ذكية لحفظ الذاكرة.)

نصائح أخرى

كن حذرًا مع طريقة Boot To The Head.سوف تتسرب إذا لم تتعامل بشكل صحيح مع جهازك IBOutlets.سأحاول شرح ذلك بأفضل ما أستطيع دون نشر الرمز (NDA).إذا كنت تخطط لاستخدام IB لإنشاء خليتك، فقم بإجراء UITableViewCell إنه ملف Xib الخاص.قم بتعيين مالك الملف ليكون ملكك UIViewController فئة فرعية (أو UITableController).اتصل ب IBOutlet شيء مثل UITableViewCell *cellFactory.في ال UITableViewDataSource طريقة tableView:cellForRowAtIndexPath: قم بتنفيذ الكود الزائف التالي؛

  1. حاول إلغاء ترتيب الخلية باستخدام المعرف الذي قمت بإعداده في IB
  2. إذا نجحت، فقد انتهيت.مجرد استخدام الخلية
  3. وإلا فأنت بحاجة إلى إنشاء خلية جديدة.استخدم ال [NSBundle mainBundle] loadNibNamed:owner:options: الطريقة مع ملف xib المناسب هناك.سيؤدي هذا إلى ملء ivar cellFactory بخلية جديدة.هنا يأتي الجزء الصعب.
  4. تعيين cell = cellFactory ثم حرر cellFactory واضبطه على الصفر للتأكد من أنك لن تستخدمه مرة أخرى عن طريق الخطأ.أنت الآن آمن لاستخدام خليتك كالمعتاد

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

هذا برنامج تعليمي جيد حول استخدام منشئ واجهة المستخدم لـ UITableView

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top