Cashapelayer تباطؤ دوران الواجهة
-
19-09-2019 - |
سؤال
أحاول نقل بعض رمز الرسم المخصص من وجهة نظر إلى CAShapeLayer
, ، والذي يضاف بعد ذلك كطائف للنظر الأصلي CALayer
. وبعد هذا يعمل أيضا بشكل جيد، ولكن عند تدوير الجهاز، يبدأ الرسوم المتحركة في التأخير، على سبيل المثال، ترى فقط الإطار في التوجه الأصلي ثم التوجه النهائي، مع وجود إطار واحد في الفترة الزمنية على الأكثر. الرسوم المتحركة الانزلاقية والانزلاق من المقابلة UIViewController
متشنج قليلا، أيضا (ولكن ليس كثيرا).
كل ال CAShapeLayer
لديه في لها path
هو واحد CGPathAddRect
, ، من المقرر أن يكون opaque
, ، إنه opacity
يكون 1.0f
و ال fillColor
تم تعيين إلى الأزرق غير شفاف.
عند رسم المسار مباشرة في وجهات النظر drawRect
الطريقة، ومع ذلك، الرسوم المتحركة يكون ناعم. لذلك أفترض أنه لديه علاقة مع CAShapeLayer
يجري الرسوم المتحركة خلال الدوران.
هل يمكن أن تخبرني كيف أتخلص من تلك المشاة أو مجرد إخفاء CAShapeLayer
عند الرسوم المتحركة؟ العودة إلى مجرد رسم CGPath
S مباشرة ليست خيار لي لأنني أعتمد على قدرة CAShapeLayer
لتحريك مسارها (لا يتم تحريكه في محاولاتي مع تدوير العرض).
/ تحديث: يحدث هذا أيضا عند الدوران UIViewController
عرض S يحتوي على عرض مع فرعية من CAGradientLayer
كما هو layerClass
(على سبيل المثال وجهة نظر بها طبقة متدرجة كخلفية).
هتافات
mrmage.
المحلول 2
يبدو أن هذه المشكلة قد تم إصلاحها بواسطة Apple في IOS 4.
نصائح أخرى
حسنا، هناك مكان خاص إخفاء، يمكنك إخفاء CAShapeLayer
ثم تفعل الرسوم المتحركة. ثم استدعاء الطريقة التي تقوم بها الأمم المتحدة CAShapeLayer
بحيث لا ترى ذلك أثناء الدوران ثم يجب أن يكون سلسا