عرض مؤشر النشاط في عرض الجدول أثناء جلب بيانات الصف

StackOverflow https://stackoverflow.com/questions/2650525

سؤال

أنا أتنقل من TableView1.row إلى TableView2 الذي يحتوي على الكثير من الصفوف التي يتم جلبها. بالنظر إلى وقت التحميل حوالي 3 ثوانٍ ، أريد أن تنزلق التنقل إلى TableView2 بمجرد تحديد TableView1.Row ، ثم عرض UiActivityIndicatorView فوق TableView2 بينما يتم جلب البيانات ثم يتم تقديمها في عرض الجدول الأساسي. ملاحظة ، TableView2 هو في الواقع نظرة فرعية على الوالدين Uiview (على عكس الوالد كونه uitableview).

لقد رأيت هذا المنشور: يجب عرض مؤشر النشاط عند التنقل من uitableView1 إلى UitableView2

... الذي يعطي إرشادات لإضافة مؤشر النشاط بدء تشغيل المكالمات حول البيانات حول البيانات في ViewDiddload من TableView2.

الشيء هو ، لست متأكدًا من كيفية عمل الحل أعلاه مع تشغيل ViewDidload وينتهي قبل أن ينزلق TableView2 بشكل واضح إلى العرض.

بشكل منفصل ، حاولت أيضًا إضافة مؤشر نشاط عبر TableView2 في IB وأضفت رمز بدء/إيقاف مؤشر Iboutlet في ViewDidAppear. ما يحدث هو تشغيل الجلب البيانات ويمكنني أن أرى أن المؤشر يدور ولكن في نهاية الجلب ، يكون عرض الجدول فارغًا. يبدو أن ViewDidAppear قد فات الأوان لإضافة بيانات إلى عرض الجدول حيث أن CellForrowatIndexPath وما إلى ذلك قد أطلقت بالفعل.

هل يمكن لأي شخص أن يقترح أي مؤشرات؟ يمكن أن أكون في عداد المفقودين شيئًا واضحًا هنا (حوالي الساعة 5 صباحًا حيث أنا وأعتقد أن عقلي هو الهريس). هل يجب أن أعيد تشغيل cellforrowatindexpath وما إلى ذلك من ViewDidAppear؟ هل المشكلة أن عرض الجدول الخاص بي هو عرض فرعي وليس طريقة عرض الوالدين؟

شكرًا

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

المحلول

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

الحل هو إدخال وحدة تحكم العرض الجديدة الخاصة بي و A) بدء تشغيل الرسوم المتحركة مؤشر النشاط على الخيط الرئيسي ثم ب) قم بتشغيل الجلب المكثف للبيانات على مؤشر ترابط آخر (باستخدام PerformSelectorInbackground). لا يمكن تطبيق أي تحديثات ذات صلة واجهة المستخدم من مؤشر ترابط الخلفية. يجب تسليم هذه إلى الخيط الرئيسي.

الكثير من المنشورات على هذا بالفعل (مثال هنا) ، سيئتي لعدم التقاطها من البداية :)

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