Как узнать положение и размер изображения после применения преобразования? - PullRequest
0 голосов
/ 23 декабря 2009

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

if(ravanImage.center.y>=300&&ravanImage.center.y<=370)
{
    ravanImage.transform = CGAffineTransformScale(ravanImage.transform, 0.98, 0.98);    
}

if(ravanImage.center.y>=230&&ravanImage.center.y<=299)
{
    ravanImage.transform = CGAffineTransformScale(ravanImage.transform, 0.98, 0.98);
}

if(ravanImage.center.y>=150&&ravanImage.center.y<=229)
{
    ravanImage.transform = CGAffineTransformScale(ravanImage.transform, 0.98, 0.98);
}

для масштабирования изображения в течение трех интервалов координат. Каждый раз, когда он входит в цикл if, он уменьшается в размере. Эта анимация в основном предназначена для стрелки, которую я хочу показать как удаляющуюся от нас внутри экрана. Я хочу получить последнюю статистику изображения после последнего масштаба.

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 23 декабря 2009

Вы можете сделать это, извлекая окончательное преобразование и применяя это преобразование к исходным значениям вида:

CGPoint ravanImageOrigin = ravanImage.frame.origin;
CGSize ravanImageSize = ravanImage.bounds.size;

// Transforming code here

CGAffineTransform currentTransform = ravanImage.transform;
CGPoint newImageOrigin = CGPointApplyAffineTransform(ravanImageOrigin, currentTransform);
CGSize newImageSize = CGSizeApplyAffineTransform(ravanImageSize, currentTransform);

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

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