Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Compare CGAffinetransform?

Tags:

xcode

ios

How Will I complete this code I'm having errors.

-(IBAction)dropDownBtn:(id)sender {

 dropDownBtn.transform = CGAffineTransformMakeRotation(720*M_PI/360);

if ([dropDownBtn.transform CGAffineTransformMakeRotation(720*M_PI/360)) {

    dropDownBtn.transform = CGAffineTransformMakeRotation(520*M_PI/360);
    }
}
like image 727
user2838188 Avatar asked Oct 25 '13 06:10

user2838188


3 Answers

There is a function to compare transforms:

CGAffineTransformEqualToTransform(transform1, transform2)
like image 124
Jeepston Avatar answered Oct 31 '22 05:10

Jeepston


In Swift you use the equal to operator (==)

transform1 == transform2
like image 43
Jeff Ames Avatar answered Oct 31 '22 04:10

Jeff Ames


If you need equality testing with given accuracy (useful in unit tests) I use this function:

BOOL CGAffineTransformEqualToTransformWithAccuracy (CGAffineTransform firstTransform, CGAffineTransform secondTransform, CGFloat epsilon) {
    return (fabs(firstTransform.a - secondTransform.a) <= epsilon) &&
            (fabs(firstTransform.b - secondTransform.b) <= epsilon) &&
            (fabs(firstTransform.c - secondTransform.c) <= epsilon) &&
            (fabs(firstTransform.d - secondTransform.d) <= epsilon) &&
            (fabs(firstTransform.tx - secondTransform.tx) <= epsilon) &&
            (fabs(firstTransform.ty - secondTransform.ty) <= epsilon);
}
like image 1
Tomasz Bąk Avatar answered Oct 31 '22 06:10

Tomasz Bąk