iphone – setTransform:CGAffineTransformMakeScale – 尝试扩展UIView时的替代方案

我使用以下内容将视图缩放到原始大小的3倍:

[pageShadowView setTransform:CGAffineTransformMakeScale (3, 1)];

我想有一个方法来测试我的UIView(pageShadowView)是否已经缩放 – 在这种情况下我想将它除以3,以便它恢复到正常大小.

我想不出任何能做到这一点的方法.所以我认为最好测试我的UIPageView是否具有某个尺寸,以及是否不将其重新缩放到原始尺寸.

所以我的问题是,是否存在将UIView缩放到某个宽度和高度的方法,该宽度和高度不是相对的(即其尺寸的3倍),而是以像素(例如200像素×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的边界而不是帧是很重要的,因为在转换UIView时帧不起作用.

相关文章
相关标签/搜索