我正在使用以下方法旋转 NSView:
setFrameRotation:
它将视图围绕其左下角旋转。围绕中心点旋转视图的最佳方法是什么?
另外,我想在其角落的超级视图中获得积分。使用:
view.frame.origin
在我旋转它之前给我一个角落。旋转后如何获得其角的实际点?
在此先感谢,本
要获得围绕框架中心的有效旋转,您必须平移框架的原点。
此外,当然view.frame.origin
在旋转之前给出原点。旋转后它还会为您提供原点,因为旋转是围绕原点进行的。原点不动。如果您确实平移原点以围绕中心旋转,那么您将知道新的原点。
要获取其他角,您可以使用[view convertPoint:pt toView:view.superview]
,pt
视图坐标系中的每个角在哪里。例如NSMakePoint(NSMaxX([view bounds]), NSMinY([view bounds]))
。
您实际上可以使用这种技术来获得您想要的翻译。计算所需的视图中心,或者只记录当前中心(如果它在您想要的位置)。然后旋转视图。使用 获取中心的新位置-convertPoint:toView:
。然后通过新中心和所需中心之间的差异来平移原点。