Na otočenie obrázka používam nasledujúci kód, ale polovica obrázka (z osi y) otočeného mimo stránku zmizne. Ako to opraviť? heading
je v radiánoch.
CALayer *layer = myUIImageView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / 500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, heading, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
odpovede:
32 pre odpoveď č. 1Riešením bolo nastavenie zPosition
vlastnosť všetkých mojich vrstiev primerane. Vďaka patrí @ Bradovi Larsonovi, ktorý navrhol toto riešenie v komentári tu, Zdá sa, že keď začnete používať CATransform3D
, normálna hierarchia zobrazenia zindexu vytvorená pomocou addsubview sa vyhodí z okna.
5 pre odpoveď № 2
layer.anchorPoint = CGPointMake(0.0, 0.0);
0 pre odpoveď č. 3
Nastavenie anchorPoint
na {0.0, 0.0}
funguje tiež (ako už zdôraznil Liam).
Tu je útržok úplného kódu na zmenu kódu anchorPoint
bez zmeny polohy vrstvy na obrazovke:
layer.anchorPoint = CGPointMake( 0.0, 0.0 );
CGPoint position = layer.position;
CGSize size = layer.bounds.size;
CGFloat posX = position.x - size.width / 2.0;
CGFloat posY = position.y - size.height / 2.0;
layer.position = CGPointMake( posX, posY );