Iphone setTransform:CGAffineTransformMakeScale-尝试缩放UIView时的备选方案

Iphone setTransform:CGAffineTransformMakeScale-尝试缩放UIView时的备选方案,iphone,objective-c,cocoa-touch,uiview,cgaffinetransform,Iphone,Objective C,Cocoa Touch,Uiview,Cgaffinetransform,我使用以下方法将视图缩放为其原始大小的3倍: [pageShadowView setTransform:CGAffineTransformMakeScale (3, 1)]; 我想有一个方法来测试我的UIView(pageShadowView)是否已经被缩放——在这种情况下,我想把它除以3,这样它就回到了正常大小 我想不出任何方法能做到这一点。所以我认为最好测试一下我的UIPageView是否有一定的维度,如果没有,最好将其重新缩放到原始大小 因此,我的问题是,是否有一种方法可以将UIView

我使用以下方法将视图缩放为其原始大小的3倍:

[pageShadowView setTransform:CGAffineTransformMakeScale (3, 1)];
我想有一个方法来测试我的UIView(pageShadowView)是否已经被缩放——在这种情况下,我想把它除以3,这样它就回到了正常大小

我想不出任何方法能做到这一点。所以我认为最好测试一下我的UIPageView是否有一定的维度,如果没有,最好将其重新缩放到原始大小

因此,我的问题是,是否有一种方法可以将UIView缩放到某个宽度和高度,而该宽度和高度不是相对的(即其大小的3倍),而是以像素表示的(例如,200像素x 300像素)。老实说,我在文档中找不到任何东西,当涉及到CGAffineTransform部分时,有点超出我的理解


如有任何建议,将不胜感激

要检查您的视图是否缩放,我们只需要检查其
变换
是否不是身份变换

BOOL isScaled = ! CGAffineTransformIsIdentity(pageShadowView.transform);
需要注意的是,只有在不使用任何其他类型的变换(如旋转或平移)时,此检查才有效

UIView
缩放到一定的宽度和高度也很容易:

CGFloat yourDesiredWidth = 200.0;
CGFloat yourDesiredHeight = 300.0;

CGAffineTransform scalingTransform;
scalingTransform = CGAffineTransformMakeScale(yourDesiredWidth/pageShadowView.bounds.size.width, 
                                              yourDesiredHeight/pageShadowView.bounds.size.height);
pageShadowView.transform = scalingTransform;
检查
UIView
bounds
而不是
frame
很重要,因为
frame
在转换
UIView
时无效