Objective-C CALayer UIView реальная ротация - PullRequest
2 голосов
/ 25 ноября 2011

Я пытаюсь повернуть объект UIView, как показано на рисунке ниже http://i.piccy.info/i7/f8ff7fe488c7c492e6ff6a689bc9cdeb/1-5-2127/60800682/rotation.png

Я пытаюсь использовать преобразование CALayer, но получаю что-то вроде этого: http://i.piccy.info/i7/bbb672b058fdfdd251cc90f1ce2b9c1f/1-5-2128/9488743/rotate2.png

1 Ответ

1 голос
/ 25 ноября 2011

Если я правильно понимаю, вы хотите переместить заголовок назад (в экран) и иметь возможность добиться этого примерно так:

float distance = 50;

CATransform3D basicTrans = CATransform3DIdentity;
basicTrans.m34 = 1.0 / -distance;
view.layer.transform = CATransform3DRotate(basicTrans, M_PI_4, 1.0f, 0.0f, 0.0f);

Чтобы достичь этого эффекта, вам нужно напрямую манипулировать одним из значений преобразования (m34). Чем ниже значение distance, тем сильнее эффект. Затем вы можете выполнить преобразование вращения вокруг оси x (для наклона), в данном случае PI / 4 или 45 градусов. Вы можете вычислить произвольные значения пи, используя degrees * M_PI / 180.0.

...