سؤال

لدي تطبيق مع uitabbarcontroller مع خمس علامات تبويب. تُظهر الاختبارات الموجودة على الجهاز الحقيقي أن التبديل من علامة تبويب إلى أخرى ، قد يستغرق واحدة أو أكثر لتحميل المشاهدات ، لأنه يتعين علي أيضًا تنزيل بعض البيانات من الإنترنت.

ما أود القيام به هو إظهار UiActivityIndicatorView أثناء التحميل ، لكنني لم أتمكن من العثور على حل. ربما لم أكن أبحث في الطريق الصحيح.

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

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

المحلول

يجب عليك تنزيل أي بيانات بطلب غير متزامن ، asihtprequest هو غلاف جميل لهذا.

ثم بالنسبة إلى UiActivityIndicatorView ، هذه خيارات شائعة:

  1. أظهرها في علامة التبويب ، قبل تحميل أي شيء آخر في العرض. وعندما تكون البيانات جاهزة ، ما عليك سوى إخفاءها وإظهار المعلومات الكاملة.
  2. أظهر عرضك غير المكتمل ، وأضف تراكبًا مع UiActivityIndicatorView.

نصائح أخرى

الطريقة التي أفعلها:

قم بإنشاء فئة LoadingViewController مع uilabel و uiactivityIndicator وخلفية سوداء.

في طريقة ViewDidload ، قمت بتعيين:

[self.view setAlpha:0.0];
[self.activityIndicator startAnimating];

أقوم بتنفيذ طريقتين:

-(void)appear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.65];
[UIView commitAnimations];
}

-(void)disappear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.0];
[UIView commitAnimations];
}

في الملصق ، يمكنك تعيين نص مخصص.

استيراد هذا الفصل في الفصل الذي تعمل عليه واتصل فقط:

[loadingViewController appear];

و

[loadingViewController disappear];

ليس لدي جهاز Mac معي الآن ولا يمكنني التحقق إذا كتبت أي أخطاء فقط ولكن آمل أن تحصل على الفكرة :)

أنا أفضل دائمًا إنشاء فصل مخصص لهذا في حال احتجت إليه في العديد من الأماكن في تطبيقي.

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