CGAffineTransformMakeScale可可吗?

时间:2011-06-25 21:00:11

标签: cocoa macos transform

如何在Cocoa中使用CGAffineTransformMakeScale?在iPhone上,我喜欢这样:

something.transform = CGAffineTransformMakeScale(2, 2);

但我怎么能在MAC上做到这一点?

2 个答案:

答案 0 :(得分:2)

CGAffineTransform,包括所有相关的帮助函数,在Mac OS X和iOS上的工作原理相同。

您需要链接到核心图形或应用程序服务框架,并为您链接的链接导入标题。

NSView没有像UIView那样的transform属性,因此如果something在您的示例中是UIView,则必须向您的NSView发送scaleUnitSquareToSize:消息

答案 1 :(得分:1)

你的问题不清楚。 CGAffineTransformMakeScale功能在Mac上可用,其工作方式与iOS完全相同。它是Application Services框架的一部分,因此您需要将该框架添加到项目中并使用以下命令导入:

#import <ApplicationServices/ApplicationServices.h>

另一方面,如果你指的是视图转换,那么在Mac上,NSView对象默认不是图层支持的,并且没有transform属性。

如果您使视图层支持,那么您可以通过视图的CALayer属性访问视图的layer对象,然后您可以对其应用转换:

aView.layer.transform = CATransform3DMakeScale(2.0, 2.0, 0.0);

请注意,iOS和Mac OS X都使用CATransform3D结构作为其图层转换属性。如果您要将图层转换设置为CGAffineTransform,则需要使用‑setAffineTransform:的{​​{1}}方法。