NSView 上的 CGAffineTransforms

发布于 2024-11-18 17:33:25 字数 223 浏览 3 评论 0原文

我正在尝试将一些 iOS 代码移植到 Mac OS X。但是我在移植时遇到了问题,

CGAffineTransform transform = CGAffineTransformMakeRoatation(-b->GetAngle());    
oneView.transform = transform

我该如何实现这一点? NSView 没有转换属性。

I am trying to port some iOS code to Mac OS X. I am having trouble porting this though,

CGAffineTransform transform = CGAffineTransformMakeRoatation(-b->GetAngle());    
oneView.transform = transform

How can I achieve this? The NSView doesn't have a transform property.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苦行僧 2024-11-25 17:33:25

您仍然可以使用转换。

通过将视图上的 setWantsLayer: 设置为 YES,确保您的视图受图层支持。

之后,您可以设置图层的仿射变换:

CGAffineTransform transform = CGAffineTransformMakeRotation(-b->GetAngle());    
[[oneView layer] setAffineTransform: transform];

You still can use transformations.

Make sure your view is layer-backed by setting setWantsLayer: on your view to YES.

Afterwards, you can just set the layer's affine transform:

CGAffineTransform transform = CGAffineTransformMakeRotation(-b->GetAngle());    
[[oneView layer] setAffineTransform: transform];
澉约 2024-11-25 17:33:25

我发现使用核心动画旋转 NSView 的唯一方法是

[myView setFrameCenterRotation:angle]

但要小心使用此方法。仅当 myView 添加到超级视图时它才能正确工作。
您可以通过覆盖方法- viewWillMoveToSuperview:来跟踪它

享受)

The only way i found to rotate NSView with core animation is

[myView setFrameCenterRotation:angle]

but be carefull using this method. it works correct only if myView is added to a superview.
you can track this by overriding method – viewWillMoveToSuperview:

Enjoy)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文