应用变换后如何获取图像的位置和大小?

时间:2009-12-23 11:28:27

标签: iphone cocoa-touch

目前我正在开发一款游戏,其中我有一个imageView,我正在逐渐缩放&最后旋转。我想获得图像和尺寸的大小。它的坐标是缩放的结束,我需要3D旋转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 个答案:

答案 0 :(得分:2)

您可以通过提取最终转换并将该转换应用于原始视图值来执行此操作:

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);

这里需要注意的一点是处理这个职位。默认情况下,视图的变换将应用于其中心点,因此上述内容可能无法为视图的原点提供正确的结束坐标。您可能需要减去值以使原点位于相对于视图中心的坐标中,然后在应用变换后添加中心视图坐标。