سؤال

وأحتاج لتدوير في الصورة عدة مرات في 90 درجة أستخدمه البرمجية التالية،

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

وهنا تشكل يجري بلدي UIImageview.

والمشكلة هي في كل مرة كنت اضغط على زر تدوير انها تدور من موضعه الأصلي، الذي هو ليس ما أريد. وأود أن ذلك لتدوير من الموضع الجديد.

وأنا جديدة على البرمجة فون، الاعتذار إذا أنا في عداد المفقودين على شيء أساسي جدا وشكرا مقدما لك مساعدة.

وكيدار

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

المحلول

إذا كنت تحاول تحريك هذا التناوب، قد ترغب في قراءة <لأ href = "https://stackoverflow.com/questions/1606663/rotation-always-start-from-original-position/1606951#1606951" > جوابي ل هذا السؤال ، حيث شخص كان يحاول تحريك التناوب تدريجي وجهة نظر. وتبين أن الرسوم المتحركة تدريجي من تحويل باستخدام CABasicAnimations هو اصعب قليلا مما كنت تتوقع. تحتاج أولا إلى قراءة تحويل التيار من طبقة UIView الخاص بك من طبقة العرض لها، ثم تغذية ذلك في الرسوم المتحركة الخاصة بك كما fromValue.

ولكن، في حالتك يبدو أنك تستخدم كتلة UIView الرسوم المتحركة لتحريك تحويل الملكية من وجهة نظركم. الكود كما كنت قد كتبت انها ستبقي فقط تحديد وجهة نظركم في تحويل لنفس دوران 90 درجة، فإنه لن تدور تدريجيا وجهة النظر بنسبة 90 خطوات درجة. للقيام دوران تدريجي، أعتقد كنت بحاجة إلى شيء كما يلي:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

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

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