سؤال

أحاول نقل بعض رمز الرسم المخصص من وجهة نظر إلى CAShapeLayer, ، والذي يضاف بعد ذلك كطائف للنظر الأصلي CALayer. وبعد هذا يعمل أيضا بشكل جيد، ولكن عند تدوير الجهاز، يبدأ الرسوم المتحركة في التأخير، على سبيل المثال، ترى فقط الإطار في التوجه الأصلي ثم التوجه النهائي، مع وجود إطار واحد في الفترة الزمنية على الأكثر. الرسوم المتحركة الانزلاقية والانزلاق من المقابلة UIViewController متشنج قليلا، أيضا (ولكن ليس كثيرا).

كل ال CAShapeLayer لديه في لها path هو واحد CGPathAddRect, ، من المقرر أن يكون opaque, ، إنه opacity يكون 1.0f و ال fillColor تم تعيين إلى الأزرق غير شفاف.

عند رسم المسار مباشرة في وجهات النظر drawRect الطريقة، ومع ذلك، الرسوم المتحركة يكون ناعم. لذلك أفترض أنه لديه علاقة مع CAShapeLayer يجري الرسوم المتحركة خلال الدوران.

هل يمكن أن تخبرني كيف أتخلص من تلك المشاة أو مجرد إخفاء CAShapeLayer عند الرسوم المتحركة؟ العودة إلى مجرد رسم CGPathS مباشرة ليست خيار لي لأنني أعتمد على قدرة CAShapeLayer لتحريك مسارها (لا يتم تحريكه في محاولاتي مع تدوير العرض).

/ تحديث: يحدث هذا أيضا عند الدوران UIViewControllerعرض S يحتوي على عرض مع فرعية من CAGradientLayer كما هو layerClass (على سبيل المثال وجهة نظر بها طبقة متدرجة كخلفية).

هتافات

mrmage.

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

المحلول 2

يبدو أن هذه المشكلة قد تم إصلاحها بواسطة Apple في IOS 4.

نصائح أخرى

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

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