Swift iOS -Применить дополнительные изменения для преобразования при использовании свойства CATransform3D .m34 для изменения перспективы в Swift - PullRequest
0 голосов
/ 31 мая 2018

Я читаю книгу по анимации Core Core Animation: Advanced Techniques .Книга написана в Objective C. Я не очень хорошо разбираюсь в Objective C. Я понимаю, что делает свойство .m34, но когда я применяю код книги к Swift, перспектива не меняется.Проблема в том, что я не могу добавить к существующему преобразованию, как объяснено здесь .

Мой код:

var tranform = CATransform3DIdentiy
transfrom.m34 = -1 / 500
transform = CATransform3DMakerotation(CGFloat(Double.pi/4), 0, 1, 0) // this is just creating a new transform instead of adding to the existing one
viewIwantTransformed.layer.transfrom = transform

Книги Код:

@implementation ViewController 
- (void) viewDidLoad 

 { [super viewDidLoad]; 

   // create a new transform CATransform3D 
   transform = CATransform3DIdentity;

   // apply perspective 
   transform.m34 = - 1.0 / 500.0; 

  // rotate by 45 degrees along the Y axis
  transform = CATransform3DRotate( transform, M_PI_4, 0, 1, 0);

  // apply to layer 
  self.viewIwantTransformed.layer.transform = transform; 

} @end

Результат

enter image description here

1 Ответ

0 голосов
/ 31 мая 2018

попробуйте

transform = CATransform3DRotate(transform, M_PI_4, 0, 1, 0) 

вместо

transform = CATransform3DMakerotation(CGFloat(Double.pi/4, 0, 1, 0)
...