4

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

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

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

我想不出任何方法可以做到这一点。所以我认为最好测试一下我的 UIPageView 是否有一定的尺寸,如果它没有重新调整到原来的大小。

所以我的问题是,是否有一种方法可以将 UIView 缩放到某个宽度和高度,这不是相对的(即其大小的 3 倍),而是以像素表示(例如 200 像素 x 300 像素)。老实说,我在文档中找不到任何关于 CGAffineTransform 的部分的内容。

任何建议将不胜感激!

4

1 回答 1

7

要检查您的视图是否被缩放,我们只需要检查它transform是否不是身份转换。

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

于 2011-04-03T19:45:43.677 回答