السلوك الملمس في iPhone و Simulator
-
20-09-2019 - |
سؤال
الوظيفة touchesMoved
يتصرف بشكل مختلف في iPhone و Simulator.
الفاصل الزمني المتكرر (معدل التحديث) للوظيفة touchesMoved
أسرع بكثير من محاكاة. هل هناك طريقة للتعامل مع الفرق؟
المحلول
غالبًا ما يجد الناس أن هذا يمثل مشكلة لأنهم يقومون بشيء مكثف في معالج اللمسات ، وعندما تصل الأحداث بشكل متكرر ، فإنه يجعل الواجهة تتخلف.
هناك طريقة بسيطة نسبيًا للتعامل مع هذا: أولاً وقبل كل شيء ، في معالج اللمسات ، قم بتخزين موضع اللمس في متغير يمثل موضع كل ما يتتبع الإصبع.
العودة من معالج اللمسات على الفور. قم بإنشاء كائن Nstimer وقم بتعيين وحدة التحكم في العرض الخاصة بك كمندوب منه واطلب من أي شيء إعادة السحب/عرض السلوك المتحرك كان في معالج اللمس. وبالتالي ، يمكنك الحصول على حركة ثابتة بالقرب من الوقت بين الأحداث التي لم تمس.
إذا كنت متقدمًا حقًا ، فيمكنك استخدام nsrunloop مخصص بدلاً من استخدام مؤقت ، ولكن هذا أكثر مما يمكنني شرحه هنا :) الفكرة العامة هي: لا تفعل كل شيء في معالجات الأحداث التي تعمل باللمس.