2016-09-01 4 views
1

Я хочу установить преобразование вида в качестве другого вида. Например, у меня есть UIImageView, и я хочу иметь такое же преобразование в другом UIImageView, как в первом.Установить преобразование вида в виде другого вида

Я пытаюсь сделать это с помощью CGAffineTransformMakeRotation, но я не знаю, как получить относительный угол первого UIImageView, чтобы сделать поворот. Может быть, это может быть сделано по-другому?

Я сделал снимок, чтобы объяснить эффект, который я хочу получить:

rotation effect

С наилучшими пожеланиями,

EDIT: Я хочу установить второй в том же положении, как и первая , Не в том же месте, но с тем же углом, например, до границы экрана.

+0

Что означает «установка преобразования как вид»? –

+0

@ смысл-дела Я хочу установить второй в том же положении, что и первый. Не в том же месте, но с тем же углом, например, до границы экрана. Ты знаешь, что я имею в виду? –

+0

проверить отредактированный ответ –

ответ

1

хорошо, и может получить transform вашего второго зрения изображения (20) отмечено использование изображения, что преобразование установить 4-й вид изображения (в ПОС), например,

CGAffineTransform currentTransform = self.imageView_2.transform; //say image view rotated transform 
self.imageView_4.transform = currentTransform; //last image set its transform to any view that u want to rotate 

Edit: 2 я не понимаю, что и хочет точно, если и хотят разместить его где-нибудь, сначала установите frame и после этого применить преобразование, как

self.imageView_3.frame = self.imageView_1.frame; //set the place where u want to place, 
CGAffineTransform currentTransform = self.imageView_2.transform; 
self.imageView_3.transform = currentTransform; 

редактировать-

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

self.imageView_3.frame = self.imageView_1.frame; //set the place where u want to place, 
CGAffineTransform currentTransform = self.imageView_2.transform; 
self.imageView_3.transform = CGAffineTransformIdentity;//currentTransform; //brings back to original 
//set the position where u want to place 
+0

Хорошо, но как мы можем установить положение второго, как позиция первого? Преобразование не работает. –

+0

проверить отредактированный ответ –

+0

Можете ли вы увидеть разные позиции между первым и вторым видом? Различные средства они расположены под разными углами. Это на первой части картины. Я хочу установить второй, как первый. Он находится на второй части изображения, после =>. –

2

Это просто просто нужно назначить преобразование одного вида в другой. например.

self.imageView1.transform = CGAffineTransformMakeRotation(45.0/180*M_PI); 
self.imageView2.transform = self.imageView1.transform; 

imageView2 будет то же самое, как преобразование ImageView1.

1

Здесь, используя собственность transform и способом CGAffineTransformMakeRotation из imageView возможно. , например.

self.imageView.transform = CGAffineTransformMakeRotation(rotation degree in decimal /180*M_PI); 

использование анимационного блока для анимации соответственно.

[UIView animateWithDuration:1.0 animations:^{ 
    self.imageView.transform = CGAffineTransformMakeRotation(180.0/180*M_PI); 
} completion:^(BOOL finished){ 
}]; 

Edit:

Для того, чтобы повернуть imageView же как другой вы можете сделать это с помощью Назначают transform собственности повернутых imageView см ниже код.

self.imageView2.transform = self.imageView1.transform; 
+0

Хорошо, но как мы можем получить разницу между этими двумя взглядами по степени? Я знаю, как делать вращение, но я не знаю, как получить степень вращения. –

+1

Хорошо, так что вы не хотите, чтобы степень уже повернутого «imageView» была равна нулю, чтобы вы могли передавать ее на другой? – vaibhav

+0

да, но я не знаю, какая степень уже повернута, и мне нужно получить разницу между этими двумя представлениями. –