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