سؤال

أحمل عددا من Uiviews على uiscrollview وأحاول تعقب لماذا يستخدمون الكثير من الذاكرة. بعد عملية القضاء باستخدام الأدوات التي اكتشفتها أن إعداد لون الخلفية من الآراء يزيد من استخدام الذاكرة بنسبة 4 مرات.

إذا لم أقم بتعيين لون الخلفية، فإن استخدام الذاكرة يجلس في حوالي 4.5megs. بمجرد تعيين لون الخلفية إلى أي شيء Redcolor أو ClearColor، فإن استخدام الذاكرة يقفز إلى 17megs.

هنا هو الرمز:

ThumbnailView *thumbView = [[ThumbnailView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 225.0f, 320.0f)];
thumbView.tag = aCounter;
thumbView.backgroundColor = [UIColor clearColor];

هل يعلم أحد ما ما الذي يمكن أن يسبب هذا؟

ما أنا حقا بعد أن يكون لديك الخلفية واضحة. إذا لم يكن هناك طريقة حول هذا، فهل هناك طريقة أخرى لوضع خلفية UIView لتكون واضحة؟

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

المحلول

تحتوي جميع مثيلات UIVIEW (وصول الفصول الدراسية المستمدة منها) عن كائن CALAAYER المرتبط (الوصول إليها عبر خاصية الطبقة) التي توفر مظهر Uiview المرئي. يمكن أن يكون لدى Calayer صورة نقطية خاصة بها، ويمكنها مشاركة صورة نقطية مع كائن Calayer آخر (وهو كيفية القيام بالتفكير)، أو لا يمكن أن يكون له صورة نقطية.

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

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

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