Подтвердить что ты не робот

Как сравнить CGAffinetransform?

Как заполнить этот код, у меня возникают ошибки.

-(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);
    }
}
4b9b3361

Ответ 1

Существует функция сравнения преобразований:

CGAffineTransformEqualToTransform(transform1, transform2)

Ответ 2

В Swift вы используете равный оператору (==)

transform1 == transform2

Ответ 3

Если вам требуется тестирование равенства с заданной точностью (полезно в модульных тестах), я использую эту функцию:

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);
}

Ответ 4

Здесь расширение:

import CoreGraphics

extension CGAffineTransform: Equatable {}

public func ==(lhs: CGAffineTransform, rhs: CGAffineTransform) -> Bool {
    return CGAffineTransformEqualToTransform(lhs, rhs)
}