سؤال

لقد قمت بإنشاء فئة فرعية UIVIEW وملف XIB المقابل حيث قمت بتعيين بعض uilabels و uiimageviews. أريد بعد ذلك وضع نسخ متعددة من هذا UIVIEW المخصص في UIVIEWCONTROLLER.

عندما أفعل ذلك ، تظهر فارغة في Builder Interface ولا تظهر عند تحميل التطبيق. ما هي الطرق التي أحتاجها لتنفيذها على الفئة الفرعية UIVIEW لجعل هذا العمل؟

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

المحلول

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

ثم

NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
UIView *fv = [[arr objectAtIndex:0] retain];

// now you have the view, do something with it:
fv.center = CGPointMake(100,100);
[self.view addSubview:fv];

لا حاجة لفعل أي شيء مع مالك الملف ؛ حتى أنه تم تعيينه على شيء هنا.

نصائح أخرى

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

ستحتاج إلى وضع منفذ في الخاص بك UIViewController الفئة الفرعية للعرض المخصص ، وتعيين UIViewController الفئة الفرعية كـ "مالك الملف" في ملف NIB (.xib) المخصص. ثم قم بتوصيل المخرج الذي قمت بإنشائه بكائن العرض الأعلى (مرة أخرى في ملف NIB العرض المخصص).

ثم في كل مرة تريد أن تقوم بتثبيت عرضك المخصص في رمز وحدة التحكم في العرض ، اتصل على:

[[NSBundle mainBundle] loadNibNamed:<custom view nib name> owner:self options:nil];

سيتم بعد ذلك ضبط المنفذ الذي أضفته على الإشارة إلى مثيل جديد لعرضك المخصص.

الجانب السلبي الوحيد لهذا النهج هو أنه سيتعين عليك وضع مثيلات عرضك المخصص في وحدة التحكم في العرض برمجيًا بدلاً من رسم بياني في Builder.

من شأن نهج آخر إنشاء الملصقات والصور بشكل برمجي في الخاص بك UIView فئة فرعية ، وبعد ذلك يمكنك إضافتها إلى Builder Interface كما تفعل مع أي شيء آخر UIView الفئة الفرعية.

تعديل: لسوء الحظ في Xcode 4.0 ، تمت إزالة هذه القدرة.

بمجرد أن يتم تكوين VIRFOOW الخاص بك في Builder Interface ، يمكنك إنشاء مجموعة جديدة (استخدم زر COG في أسفل نافذة المكتبة) وسحب كائن الفئة الفرعية الخاصة بك (يحتوي على صورك وعلاماتك) من عرض القائمة (أي ليس التخطيط عرض) العودة إلى نافذة المكتبة.

يمكنك بعد ذلك إضافة مثيلات متعددة من فئة العرض الفرعية إلى أي طريقة عرض أو نافذة منشئ الواجهة كما تفعل مع الكائنات المدمجة في المكتبة.

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