cocoa - 旋转 NSView 并获取其角点

标签 cocoa rotation nsview point

我正在使用以下方法旋转 NSView:

 setFrameRotation:

这将围绕左下角旋转 View 。围绕中心点旋转 View 的最佳方法是什么?

另外,我想获取其角点的 super View 中的点。使用:

view.frame.origin

在我旋转它之前给我一个角。旋转后我如何获得其角点的实际点?

提前致谢,本

最佳答案

要获得围绕框架中心的有效旋转,您必须平移框架的原点。

此外,当然view.frame.origin在旋转它之前给出原点。旋转后它还会为您提供原点,因为旋转是围绕原点进行的。原点不动。如果您平移原点以绕中心旋转,您就会知道新的原点。

要获取其他角点,您可以使用[view ConvertPoint:pt toView:view.superview],其中pt是 View 坐标中的每个角点系统。例如。 NSMakePoint(NSMaxX([ View 边界]), NSMinY([ View 边界]))

您实际上可以使用此技术来获得您想要的翻译。计算所需的 View 中心,或者仅记录当前中心(如果它位于您想要的位置)。然后旋转 View 。使用 -convertPoint:toView: 获取中心的新位置。然后根据新中心与所需中心之间的差异平移原点。

关于cocoa - 旋转 NSView 并获取其角点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563239/

相关文章:

swift - Layer-backed NSView 子类在其非 layer-backed superview 上导致 z-index 问题

cocoa - 在类似 itunes 的应用程序中全屏显示 (cocoa OSX)

objective-c - 找不到 'SenTestCase' 的接口(interface)声明

objective-c - CGEventPostToPSN 不适用于 cgkeycode (56)

objective-c - 将带有数学表达式的字符串转换为 float

javascript - 如何在D3中获得完整的顺时针旋转

c - 世界轴到局部轴

cocoa - Xcode 3.2.5 Cocoa 项目修改了链接的第 3 方 dylib。为什么?

ios - 旋转设备时是否可以对 UIView 使用自定义旋转?

objective-c - NSButton 在 NSImageView 上显示时出现渲染问题