将视图转换设置为另一个视图

时间:2016-09-01 08:44:26

标签: ios objective-c

我想将视图的转换设置为另一个视图。例如,我有UIImageView,我希望在第一个UIImageView中使用相同的转换。

我尝试使用CGAffineTransformMakeRotation来制作它,但我不知道如何获得第一个UIImageView的相对角度来进行旋转。也许它可以以不同的方式完成?

我拍了一张照片来解释我想要得到的效果:

rotation effect

致以最诚挚的问候,

编辑:我想把第二个放在与第一个相同的位置。不在同一个地方,但与屏幕的边界具有相同的角度。

3 个答案:

答案 0 :(得分:2)

只需要将一个视图的转换分配给另一个视图。 例如

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

imageView2 将与 ImageView1 相同。

答案 1 :(得分:1)

好的,你可以得到你的第二张图片视图的transform(20)标记的图像使用该变换来设置第四张图片视图(在你的图片中),例如,

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 

修改: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; 

编辑3

如果你想旋转回正常然后使​​用如下

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

答案 2 :(得分:1)

此处使用transform的属性CGAffineTransformMakeRotation和方法imageView可以做到这一点。 e.g。

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){
}];

修改

要将imageView与另一个相同,您可以通过指定轮换transform的{​​{1}}属性来执行此操作,请参阅下面的代码。

imageView