我正在使用以下方法旋转 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/