Ответ 1
Существует функция сравнения преобразований:
CGAffineTransformEqualToTransform(transform1, transform2)
Как заполнить этот код, у меня возникают ошибки.
-(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);
}
}
Существует функция сравнения преобразований:
CGAffineTransformEqualToTransform(transform1, transform2)
В Swift вы используете равный оператору (==)
transform1 == transform2
Если вам требуется тестирование равенства с заданной точностью (полезно в модульных тестах), я использую эту функцию:
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);
}
Здесь расширение:
import CoreGraphics
extension CGAffineTransform: Equatable {}
public func ==(lhs: CGAffineTransform, rhs: CGAffineTransform) -> Bool {
return CGAffineTransformEqualToTransform(lhs, rhs)
}