Obj C: Как масштабировать только вверх? - PullRequest
0 голосов
/ 12 ноября 2010

Привет всем. У меня есть небольшая проблема здесь. Я просто хочу масштабировать свой взгляд, но только для увеличения. Я имею в виду, что я не хочу, чтобы он выходил из исходных координат, я просто хочу масштабировать в одном направлении, не затрагивая положение.

[UIView beginAnimations: @"myViewAnimation" context: nil];
    [UIView setAnimationDuration:1.0];


    redView.transform = CGAffineTransformMakeScale(1.0, 3.0);

    [UIView commitAnimations];

Спасибо! * * 1004

1 Ответ

0 голосов
/ 12 ноября 2010

Источником всех преобразований UIView является anchorPoint его слоя, который по умолчанию находится в центре представления.Установите для anchorPoint значение CGPointZero, чтобы вид был масштабирован вправо и вверх, а его текущая позиция будет фиксированной:

redView.layer.anchorPoint = CGPointZero;
...

UIView beginAnimations: @"myViewAnimation" context: nil];
[UIView setAnimationDuration:1.0];

redView.transform = CGAffineTransformMakeScale(1.0, 3.0);

[UIView commitAnimations];

Обратите внимание также, что кадр вида рассчитывается с использованием anchorPoint его слоя, поэтому вам может потребоваться также настроитьфрейм вида соответственно

Для доступа к слою вида вам необходимо добавить QuartzCore.framework для связи с вашим проектом и импортировать заголовочный файл <QuartzCore/QuartzCore.h>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...