كيف يمكنني تشغيل الرسوم المتحركة الأساسية على وكيل الرسوم المتحركة أثناء استدعاء resizeSubviewsWithOldSize؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

لدي بعض NSViews التي أضعها في أحد التخطيطين اعتمادًا على حجم نافذتي.

أقوم بضبط التخطيط عندما يتلقى المشرف ذو الصلة طريقة resizeSubviewsWithOldSize.

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

هل من الممكن بدء رسم متحرك جديد وتشغيله فعليًا أثناء تغيير الحجم؟

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

المحلول

لا أعتقد أنه يمكنك القيام بذلك بسهولة لأن الرسوم المتحركة لـ CA يتم تشغيلها عبر مؤقت ولن يتم تشغيل المؤقت أثناء أوضاع حلقة التشغيل النشطة أثناء قيام المستخدم بالسحب.

إذا كان بإمكانك التحكم في حلقة التشغيل أثناء قيام المستخدم بالسحب، فجرب أوضاع حلقة التشغيل.هذا سيجعل الأمر يعمل.لا أعتقد أنه يمكنك تغييره من جانب CA.

نصائح أخرى

هذه ليست إجابة حقًا، لكنني أنصح بعدم تحريك أي شيء أثناء السحب لتغيير حجم النافذة.الشاشة متحركة بالفعل (من النافذة المتحركة) - من المحتمل أن تكون الرسوم المتحركة الإضافية مربكة بصريًا وغريبة.

من الأفضل استخدام تأثيرات CoreAnimation للانتقال من حالة معروفة إلى أخرى - على سبيل المثال، عندما يتم تغيير حجم نافذة التفضيل لترافق محتويات جزء جديد، وتكون على دراية بالحجمين القديم والجديد، أو عندما تقوم بتلاشي كائن للداخل أو للخارج (او كلاهما).سيكون إجراء الرسوم المتحركة أثناء تغيير حجم النافذة أمرًا مربكًا بصريًا وسيجعل من الصعب على المستخدم التركيز على الحصول على حجم النافذة حيث يريدها.

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