سؤال

ماذا يجب أن أفعل إذا كنت بحاجة إلى تدوير UIImageView?لدي UIImage الذي أريد أن تدوير بنسبة 20 درجة.

أبل مستندات الحديث عن التحول المصفوفة, ولكن هذا يبدو صعبا.هل هناك أي طرق مفيدة أو الوظائف لتحقيق ذلك ؟

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

المحلول

ومصفوفة التحول ليست صعبة بشكل لا يصدق. انها بسيطة جدا، إذا كنت تستخدم وظائف الموردة:

imgView.transform = CGAffineTransformMakeRotation(.34906585);

و(. 34906585 20 درجة بالراديان)

نصائح أخرى

إذا كنت تريد يمينا، ويجب أن تكون قيمة أكبر من 0 إذا كنت تريد لتدوير إلى اليسار يشير إلى القيمة مع علامة "-". على سبيل المثال -20.

CGFloat degrees = 20.0f; //the value in degrees
CGFloat radians = degrees * M_PI/180;
imageView.transform = CGAffineTransformMakeRotation(radians);

وسويفت 4:

let degrees: CGFloat = 20.0 //the value in degrees
let radians: CGFloat = degrees * (.pi / 180)
imageView.transform = CGAffineTransform(rotationAngle: radians)

سويفت الإصدار:

let degrees:CGFloat = 20
myImageView.transform = CGAffineTransformMakeRotation(degrees * CGFloat(M_PI/180) )

سويفت 4.0

imageView.transform = CGAffineTransform(rotationAngle: CGFloat(20.0 * Double.pi / 180))

إليك امتدادا لسويفت 3.

extension UIImageView {

    func rotate(degrees:CGFloat){
        self.transform = CGAffineTransform(rotationAngle: degrees * CGFloat(M_PI/180))
      }  
    }

والاستعمال:

myImageView.rotate(degrees: 20)
_YourImageView.transform = CGAffineTransformMakeRotation(1.57);

وحيث 1.57 هي قيمة راديان لمدة 90 درجة

وهذا مثال التنسيق أسهل (20 درجة):

CGAffineTransform(rotationAngle: ((20.0 * CGFloat(M_PI)) / 180.0))

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

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