iPhone UiActivityIndicatorView أثناء تحميل UiViewController
-
30-09-2019 - |
سؤال
لدي تطبيق مع uitabbarcontroller مع خمس علامات تبويب. تُظهر الاختبارات الموجودة على الجهاز الحقيقي أن التبديل من علامة تبويب إلى أخرى ، قد يستغرق واحدة أو أكثر لتحميل المشاهدات ، لأنه يتعين علي أيضًا تنزيل بعض البيانات من الإنترنت.
ما أود القيام به هو إظهار UiActivityIndicatorView أثناء التحميل ، لكنني لم أتمكن من العثور على حل. ربما لم أكن أبحث في الطريق الصحيح.
هل يمكن لأحد أن يساعدني؟
المحلول
يجب عليك تنزيل أي بيانات بطلب غير متزامن ، asihtprequest هو غلاف جميل لهذا.
ثم بالنسبة إلى UiActivityIndicatorView ، هذه خيارات شائعة:
- أظهرها في علامة التبويب ، قبل تحميل أي شيء آخر في العرض. وعندما تكون البيانات جاهزة ، ما عليك سوى إخفاءها وإظهار المعلومات الكاملة.
- أظهر عرضك غير المكتمل ، وأضف تراكبًا مع 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 معي الآن ولا يمكنني التحقق إذا كتبت أي أخطاء فقط ولكن آمل أن تحصل على الفكرة :)
أنا أفضل دائمًا إنشاء فصل مخصص لهذا في حال احتجت إليه في العديد من الأماكن في تطبيقي.