فون الوجه الانتقالي - هل يمكنني الحصول على إشعار عند نصف الطريق

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

سؤال

لدي UIView واحد لرسم أي واحد من مجموعة من العناصر. وهذا هو، يمكن أن يقل، بلدي الفئة الفرعية UIView واحدة لرسم مربع أو دائرة، أو مثلث على سبيل المثال.

أود أن أحصل على انتقال لقلب هذا الرأي بحيث يسحب Uiview شكل مختلف عند نصف الطريق نقطة، لذلك يبدو أنني انتقل إلى طريقة عرض مختلفة، لكنني حقا أعد رسمي عرض واحد في نقطة الطريق في منتصف الطريق.

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

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

شكرا على اي مساعدة!

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

المحلول

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

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

ومع ذلك، يبدو لي أن أخرق أكثر للاطلاع على طرق العرض استجابة للانتقال. بالتأكيد سوف يستغرق الكثير من التعليمات البرمجية.

نصائح أخرى

يمكنك محاولة القيام بأمطال مثل هذا. على سبيل المثال، يتم تعيين خاصية AnimationDuration الخاصة بك إلى 2.0F. لذلك، نقطة الطريق نصف هي ثانية واحدة، حتى تتمكن من استخدام

performentselector: @ المشدد (yourcallbackmethod) withobject: nil afterdelay: 1.0F]؛

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

بمعنى آخر، ربما لا يستحق كل هذا العناء. أقترح عليك التفكير في طريقة مختلفة لحل مشكلتك.

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