n.e*_*ind 4 iphone cocoa-touch objective-c uiview cgaffinetransform
我使用以下内容将视图缩放到原始大小的3倍:
[pageShadowView setTransform:CGAffineTransformMakeScale (3, 1)];
Run Code Online (Sandbox Code Playgroud)
我想有一个方法来测试我的UIView(pageShadowView)是否已经缩放 - 在这种情况下我想将它除以3,以便它恢复到正常大小.
我想不出任何能做到这一点的方法.所以我认为最好测试我的UIPageView是否具有某个尺寸,以及是否不将其重新缩放到原始尺寸.
所以我的问题是,是否有一种方法可以将UIView缩放到某个不相对的宽度和高度(即其大小的3倍),但以像素表示(例如200像素x 300像素).我在文档中找不到任何东西,说实话,当谈到CGAffineTransform部分时,我有点头脑.
任何建议将非常感谢!
要检查您的视图是否已缩放,我们只需检查它transform是否不是标识转换.
BOOL isScaled = ! CGAffineTransformIsIdentity(pageShadowView.transform);
Run Code Online (Sandbox Code Playgroud)
需要注意的是,只有在您不使用任何其他类型的转换(即轮换或翻译)时,此检查才有效.
缩放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;
Run Code Online (Sandbox Code Playgroud)
检查UIView's bounds而不是frame,因为转换frame时无效是很重要的UIView.
| 归档时间: |
|
| 查看次数: |
6218 次 |
| 最近记录: |