2015-03-18 3 views
2

Я хотел был бы сделать что-то подобное к NSStringFromCGAffineTransform для CATransform3D. Есть ли встроенные функции для этого? Или способы использования существующих API?Преобразование CATransform3D в NSString

Например:

[[layer valueForKey:@"transform"] description] 

почти делает это, но выводит значения преобразуются как гекса.

ответ

3

CATransform3D является структурой CGFloat s, названной m11, m12, m13, ... (щелкните правой кнопкой мыши по CATransform3D в Xcode и нажмите «Перейти к определению»). Зная это, вы можете создать функцию, которая будет вести себя аналогично другим функциям NSStringFromX().

NSString *NSStringFromCATransform3D(CATransform3D transform) { 
    return [NSString stringWithFormat:@"[%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f]", 
      transform.m11, transform.m12, transform.m13, transform.m14, 
      transform.m21, transform.m22, transform.m23, transform.m24, 
      transform.m31, transform.m32, transform.m33, transform.m34, 
      transform.m41, transform.m42, transform.m43, transform.m44]; 
} 
Смежные вопросы