Комплекс CATransition - PullRequest
       35

Комплекс CATransition

0 голосов
/ 04 мая 2011

Я пытаюсь создать CATransition в UIView.

Я хочу переместить UIView вправо и одновременно (и всегда в одной и той же точке) повернуть его.

Это лучше объясняется изображением.

Я могу переместить его с CATransition, а также повернуть его с CABasicAnimation, но я не знаю, как сделать это вместе.

Спасибо.

Комплексный переход http://img585.imageshack.us/img585/8949/stackover.png

Ответы [ 2 ]

1 голос
/ 24 мая 2011

- (void) scaleAndRotate: (UIImageView *) myView andAngle: (float) угол {

CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.5,1.5);
CGAffineTransform rotateTrans =CGAffineTransformMakeRotation(angle * M_PI / 180);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
myView.transform = CGAffineTransformConcat(scaleTrans, rotateTrans);
[UIView commitAnimations];

}

В приведенном выше методе: заменить & на то, что вы хотите ..Это будет работать ,,, конечно :) Все самое лучшее

0 голосов
/ 04 мая 2011

Вы должны рассмотреть возможность создания двух копий изображения, поворота одной и маскировки их обеих, чтобы они могли быть расположены рядом друг с другом в форме буквы L.

Используя эту технику, вы будете выполнять два перевода одновременно (перемещение маски и нижележащего изображения) на оба изображения A и T. Но обратите внимание, что вращение не будет анимированным. Вы немедленно поместите изображение T в повернутое состояние и просто откроете его, переместив его под маску (одновременно сделав противоположное на изображении A, чтобы скрыть его). Таким образом, вы фактически не объединяете перевод и вращение в одну анимацию, а просто используете перевод с маской как для исходного изображения (A), так и для повернутой копии (T).

Вам нужно будет замаскировать левую сторону одной и правую сторону другой. Форма маски должна иметь противоположный угол 45 градусов на обоих, тогда вы можете свести эти угловые края вместе, чтобы сформировать L. Со временем вы просто перемещаете маску в каждом, пока первое изображение полностью не исчезнет, ​​и вы осталось с вашим конечным состоянием.

Маскирующая часть - это сложная часть. Смотрите этот ответ по маскировке UIImage с CoreGraphics: маскировка UIImage

Маска PNG будет в основном просто прямоугольником с одной стороной под углом 45 градусов. Вы можете создать это в любом редакторе изображений (Photoshop, GIMP, Acorn).

Примечание: этот подход создаст острый край в углу. Другой подход состоит в том, чтобы деформировать пиксели вокруг этого угла, когда они перемещаются от вертикального нисходящего движения к горизонтальному правому движению. (Я думаю) Это было бы намного сложнее.

...