0

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

 setFrameRotation:

它将视图围绕其左下角旋转。围绕中心点旋转视图的最佳方法是什么?

另外,我想在其角落的超级视图中获得积分。使用:

view.frame.origin

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

在此先感谢,本

4

1 回答 1

1

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

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

要获取其他角,您可以使用[view convertPoint:pt toView:view.superview]pt视图坐标系中的每个角在哪里。例如NSMakePoint(NSMaxX([view bounds]), NSMinY([view bounds]))

您实际上可以使用这种技术来获得您想要的翻译。计算所需的视图中心,或者只记录当前中心(如果它在您想要的位置)。然后旋转视图。使用 获取中心的新位置-convertPoint:toView:。然后通过新中心和所需中心之间的差异来平移原点。

于 2012-05-12T12:13:48.657 回答